I’m unable to reproduce any problem with Part.LayerName.
When are you executing this code? Are you sure that the NodeLayer with Id = “FrameLayer” actually exists and is a child of the Diagram.Panel?
On a separate but related issue, it’s commonplace to data-bind the go:Part.LayerName to a data property naming the layer. So one would set that property on the data before adding the data to the model’s collection of node data. Or, if that property raised the PropertyChanged event in the setter, you could set that property at any time in order to change the Layer that the Node is in.
I’m just sugggesting that you don’t need to call PartManager.FindNodeForData in order to change the Part.LayerName. But I could see you wanting to do so anyway if this were a special case or if you couldn’t modify the data class appropriately.