I'm sure you have your own reasons for using the Win Forms RTB in WPF (like how different WPF's RTB is to use) but I should mention that RapidSpell WPF is nearly identical to RapidSpell Desktop .NET.
We can measure where the underline should go using one of two Win32 interop calls. I tried with both and they both behave the same in your situation. They're pretty basic calls to EM_FORMATRANGE, so there's not much that I can see that is wrong with it. I have emailed you a modification to your project, which includes all the code we use to measure the text - I don't know if you want to have a look at it.
Not really sure what to suggest - I suppose it may be possible for you to use some kind of heuristic to arrive at a displacement for the underline, and then modify it's position accordingly. To do that you'd need to change your textboxes from RichTextBox to AYTRichTextBox (it's our subclass, that includes a y offset property).
Let me know your thoughts please.
Jim
-your feedback is helpful to other users, thank you!-your feedback is helpful to other users, thank you!