Hi,
I think this is related to a bug fix in the 2.3.1.0 upgrade script. Previously the mp_FriendlyUrls.FriendlyUrl field was a varchar field which is not suited for non ascii characters so we changed it to nvarchar to better support localization.
Sorry that change created this issue for you but I do not know a better way to fix it than to edit and save the pages. I believe the ?? on the url manager were already there in previous versions because of the varchar was not able to store Persian charcters so they convert to ? but at least now it should be possible to fix them because it can store them. I believe the only reason it worked before was because we were passing in the url as varchar param which converted it to ??? and this matched what was in the table so it was able to resolve the page. But now we pass in the url as nvarchar and the characters do not get converted to ??? so it does not match until you fix the urls by editing the page it updates the friendlyurl so it contains the Persian characters and now it can match again.
Hope it helps,
Joe