Thanks for the guidance. I did this and it half worked. Progress! :) I'm re-parenting the child to a parent that has the same size and anchors as its original parent. When it's re-parented though, it moves to the left side of the screen. When I add code to move it back to its original location, it ignores that code. No error, just ignored.
# ALL THIS WORKS
var parentOLD = get_node("Selection_Screen/characters")
var childMOVE = get_node("Selection_Screen/characters/heroA")
var parentNEW = get_node("Top_Parent/new_top")
var childNEW = get_node("Top_Parent/new_top/heroA")
# THIS GETS IGNORED
Again, it doesn't give any errors when executing any of the code. However, if I click to active the same code a second time, the re-parenting code throws a null warning as expect, and the childNEW is properly moved to the correct location. I thought about putting in a delay to run the movement code a fraction of a second later, but the player will still see the child in the wrong location for a split second and it'll look bad. How do I get around this wrinkle? Thanks again.