You can try using the inst2dict and dict2inst methods, see here: https://docs.godotengine.org/en/3.1/classes/[email protected]
If those don't work, your best bet is to manually serialize the properties of the nodes you know you will change, and manually deserialize them. Example:
func serialize():
return {
"position" : position
}
func deserialize(dictionary):
position = dictionary["position"]