Okay so I think it might be a good idea to go back to basics here, if I wanted to have an item go from invisible to visible on screen I would do it this way, either
a) I would have some object set to be able to be clicked by the mouse, I would have some code similar to the below;
func _input(event):
if event is InputEventMouseButton:
self.visible = not self.visible
and this way when the mouse is clicked over the object it would make the object visible if it was invisible and invisible if it was visible.
or
b) I would have a script on a top level node which would look out for a mouse click and check where it happened like this;
func _input(event):
if event is InputEventMouseButton:
var pos = get_viewport().get_mouse_position()
if pos.global_position = someobject.global_position
$someobject.functioninscript()
and then in the other object I would have
func functioninscript():
self.visible = not self.visible
both of these methods work in principle but with the second one you may have to add a + or - to the global position of the object depending on how much tolerance you want in the mouse click over the object.