My first question is: why do you need to rebuild any Node at all?
When the user selects their desired SUBTYPE, you should be modifying the Picture.source property within a transaction. It is commonplace to do so by setting some property (but not the “key” property) on the node data object that is data bound to the Picture.source property.
Using a transaction will automatically update the Picture and the Node that it is in, and (if needed) update any Layouts and update the document bounds and scrollbars, and update the viewport. It also supports undo/redo, if your app has enabled that.