<component name="myComponent" extends="Group">
myComponentNode = CreateObject("roSGNode", "myComponent")
myComponentNode = CreateObject("roSGNode", "Group")
After more experimentation, I've deduced that it is not possible to create custom components in observeField() callback functions.
Are you making sure to keep the component in scope? If you're just creating it in a variable local to the function, it'll get disposed as soon as you exit the function.
I have a simple test app that demonstrates the issue and that I'd be happy to share if anyone is interested in investigating further.