I think it's because you're using the function wrong as seen in documentation
void add_child ( Node node, bool legible_unique_name=false )
And having looked through your game code
Having the "j" or "p" being the (node).new Doesnt work with that, it would appear that to properly use add_child you would need to do something along the lines of
Example
get_node("Test").add_child(Node2d)
Or something along those lines, i believe that's the reason why the hookups arent working as well
I dont know an alternative fix other than just setting all the joints manually in the editor for now until you find an alternative method of doing this properly