I had the same problem, and after a lot of testing I came up with a method to rewrite ? and ? to O and o in post titles and permalinks. I don’t know how to make a plugin out of this, so as for now, we have to edit the core files.
1. Open wp-includes/formatting.php and scroll to line 655 (approx).
2. After all the decompositions, and between $string = strtr($string, $chars); and } else {, paste the following:
// Fix ? and ?
$chars['o-in'] = array('?','?');
$chars['o-out'] = array('O','o');
$string = str_replace($chars['o-in'],$chars['o-out'],$string);
3. Make sure you save the file as utf-8.
Hope this helps!
(I am using WP 3.1.1)