Now that I think about it, you're doing something I've never done before.
You're reading in objects from a VM file and trying to attach them to the ui
tree. In my Draw program I'm taking already existing objects (in a separate
resource), slated to run in the ui thread, and attaching them to the ui tree.
In another part of the program I take objects from a VM file and add them to
the "vis" tree that runs in the process thread. And I'm doing the adding from
a method running in the process thread.
The objects being added into the ui tree are in a resource set to run under
the ui thread (ui-object). This is necessary since all the objects in an
object tree must be running in the same thread. For the VM objects that are
being added to the vis tree, they are duplicated from a resource marked as
object (process thread runs them) and attached to the VM file. All the
objects in the vis tree are run by the process thread. This is similar to the
SimpWP sample.
So, to summarize, make sure you've got the VM objects in a resource that is
marked to run in the ui thread (ui-object) if you're going to add them to an
object tree running in the ui thread. It shouldn't matter which thread does
the adding of the objects, at least I don't see why it would.
Hope this helps.
Nathan