Maybe that wasn't clear.
When you add a node to the hierarchy, you need to make considerations for that when accessing the nodes that were there before.
You're going from:
Containing node running Code
-CollisionShape
--Sprite
to:
Containing node running `Code
-BodyNode
--CollisionShape
---Sprite
The only structures necessary to change are the way you access shapes and sprites
var Stamp = node.duplicate()
Stamp.get_node("CollisionShape2D").shape = Stamp.get_node("CollisionShape2D).shape.dupilcate(true)
Stamp.get_node("CollisiionShape2D/Sprite").scale = etc...
The new spawning nodes are supposed to be children of this Node2D you are writing this script in. You went from getting a child from a parent and adding it to it's grandparent, to getting a child from a parent and adding it to it's great grandparent, which is only going farther away from what is going on here. Your stamp isn't even a duplicate anymore - you are trying to add a node that has a parent (especially obvious because you used get_child to access it) to another node. Nodes can't have more than 1 parent.

Ignore the structure, as your structure is different. Especially ignore the name of the node, as I changed the node from an Area2D initially to a RigidBody2D and never renamed it as the name was irrelevant.
This is to help visualize the situation.
You send a node to subdivide(). That node gets duplicated. You have to access the children of this duplicated node in order to change the visual representation and create a new resource to remove the link to the original.
Originally, You were accessing the CollisionShape2D directly as the stamp. Now the Stamp is the Body, which contains a CollisionShape2D. A Body does not have a shape property, but the CollisionShape2D does. How then do you access the CollisionShape2D's shape when your point of reference is the Body?
! Body.get_node("CollisionShape2D").shape
Your CollisionShape2D has a sprite, which you were accessing via get_node("Sprite"). Again - your point of reference into this object is now the Body, which contains a CollisionShape2D, which contains a Sprite.
Nothing about the process changed here.
New Process:
1. The function Subdivide()
gets a child (RigidBody2D) of the scripted Node
2. The function creates 4 objects of the same structure as the Rigidbody2D
3. The Node
containing this function adds those RigidBody2D objects as new children
4. The function removes the original child (you haven't coded that yet)
Old Process:
1. The function Subdivide()
gets a child (CollisionShape2D) of the scripted Node
2. The function creates 4 objects of the same structure as the CollisionShape2D
3. The Node
containing this function adds those CollisionShape2D objects as new children
4. The function removes the original child (you haven't coded that yet)
Notice how the only thing changed was the name in bold here.
You do not suddenly need to change this process of cloning a child to make new children because of the hierarchy change. The thing that has changed is the hierarchy of the child's contents.