Repository: godot
Issue: PackedScene behaving unexpectedly
Labels: topic:core,documentation

**Godot version:**
3.2.3 stable


**OS/device including version:**
Windows 10 64-bits


**Issue description:**
I might be missing something but when saving a scene in a PackedScene, I need to set the owner of instanced scenes to be the same as the scene I'm packing, right? I also have to set the owner of all the children of the instanced scene otherwise these will be discarded and not packed, right? 

If this is the correct way to pack a scene, then there might be a bug or I'm missing something(probably the case)

What I'm doing: 
I have set up the main scene with a Node2D as "root" carrying a Kinematic2D with a sprite and a collisionShape2D as children. 
so Main Scene: 
-MainScene
----Player
-------CollisionShape2D
-------Sprite

I have also set up a secondary scene, the scene I'm instancing during _ready()
the Secondary Scene Tree is identical to the MainScene.
So Secondary Scene:
-SecondScene
-----FakePlayer
--------CollisionShape2D
--------Sprite

As I just mentioned, I instance the SecondScene in MainScene _ready() function. 
I add this scene as a child on Player. I set the owner to "self.get_tree().current_scene", as this is the scene I'm packing. 
I do this for all the children in the instanced scene, as said in the docs. 
I pack my Scene with OK results.
I change the scene to the PackedScene with a "change_scene_to(packed_scene)"

**Save function:** 
`
func SaveState():
	saved = true
	packed_scene = PackedScene.new()
	if packed_scene.pack(get_tree().current_scene) == 0:
		if ResourceSaver.save("res://saved.tscn", packed_scene) == 0:
			print("Saved Scene")
		else:
			print("Error saving Scene")
	else:
		print("Error packing Scene")
	return
`
![image](https://user-images.githubusercontent.com/24574061/107612203-03ab4a80-6c46-11eb-92d8-ba1244def3b6.png)


**Load function**
`
func LoadState():
	if get_tree().change_scene("res://saved.tscn") == 0:
		print("Loaded Scene")
	else:
		print("Error loading Scene")
	return
`
![image](https://user-images.githubusercontent.com/24574061/107612230-0f970c80-6c46-11eb-8ea2-76607b0080c4.png)

I expect the loaded scene to look like this:
-MainScene
---Player
-----CollisionShape2D
-----Sprite
-----SecondScene
-------FakePlayer(correct values)
----------CollisionShape2D
----------Sprite

What I get: 

-MainScene
---Player
-----CollisionShape2D
-----Sprite
-----SecondScene
--------FakePlayer(**Incorrect values**)
----------CollisionShape2D
----------Sprite
--------FakePlayer(**Correct values**)
----------CollisionShape2D
----------Sprite

I end up with two copies of the first child of the instanced scene. I didn't mention that I change a variable in FakePlayer before saving to make sure the values are carried with the save. That's what I mean with "Correct/incorrect Values). 
Incorrect Values are the default values.

The culprit and the issue lie within the .tscn file. 
specifically this line here: [node name="SecondScene" type="Node2D" parent="Player" instance=ExtResource( 2 )]
If I remove "instance=ExtResource( 2 )" before loading the scene, it does not create a copy of "FakePlayer" and it's children with default values.

**Steps to reproduce:**
Start Project
Save (press "S")
Load (press "L")
Look at the remote tree. 



**Minimal reproduction project:**
[TestProject.zip](https://github.com/godotengine/godot/files/5963631/TestProject.zip)

Edit: Added images of code as the code got squished.