The reason it does not work in your code is because this.prize is not a child of root. So, when you call root.removeChild(this.prize), nothing happens and when you later try to add this.prize to arm, it gives an error, because it still has a parent.
It should appear at the new location keeping the current local position it had when it was under the previous parent. If it had a local position far away from parent’s center, then it will also be far away from the new parent after you reparent it. You can read the .getLocalPosition() to check if it is correct or reset it to zero. Also make sure the entity is actually enabled after you reparent it.