This works fine, except when the user tries clicking on the Hyperlink. Then there's an exception, which appears to be a bug in Silverlight: http://silverlight.codeplex.com/workitem/7696.
I think you can implement a work-around by overriding Diagram.OnGotFocus to just call the base method wrapped in a try/catch to muffle the exception. We'll implement this ourselves in the next bug-fix release.