I'm working on a project where I routinely pack scenes and save them in a data structure to be instantiated again later. In my initial tests, this worked out exactly as desired. Certain fields that were changed in real time are preserved, including the position of the scene itself and the internal positions of its children, and modulate colors applied to the scene. Even children of the scene that are physics bodies 'remember' attributes such as rotation and velocity when the scene is packed.
However, other fields seem to not be saved, and I can't figure out any rhyme or reason behind it. One child of the scene is a door that has an AnimatedSprite and StaticBody2D as children, and part of the functionality of the door is that I set the value for its CollisionShape2D "disabled" to true. But when the scene is packed, all of the values are returned to their defaults, so the AnimatedSprite does not remember which animation it is set to, and the CollisionShape2D stops being disabled.
I don't really understand what the rule is for which fields are saved and which ones are returned to their defaults. I even tried looping through all the children of the door and setting their owners to be the scene that gets packed, but to no avail.