I have tried running your code with Q2 SP2 and it seems to work fine. All you have to do in order to access the URL property of the Hyperlink is to cast span to Hyperlink after you have verified that it is actually a Span:
RadDocument document =
Hyperlink link = (Hyperlink) span;
As for your other question, the preferred way to manipulate the document structure is rather through the Inlines property of Paragraph, the Insert and InsertInline methods of RadRichTextBox, etc., than adding elements to the Children properties of the elements.
the Telerik team
Browse the videos here>>
to help you get started with RadControls for Silverlight