### Godot version

v4.1.beta.custom_build [dbd482faa]

### System information

macOS 13.3.0 - Vulkan (Forward+) - integrated Apple M1 Pro - Apple M1 Pro (8 Threads)

### Issue description

Some editor action like changing type will replace the node by another node. Right now Node properties will still point to the old Node. 

### Steps to reproduce

1. create a scene with a root node 
2. attach a script that exports a node property
3. set the property to point to the root node 
4. change the type of the root node
5. look at the property it will error out and the editor will be blank

### Minimal reproduction project

[Test.zip](https://github.com/godotengine/godot/files/11764206/Test.zip)
with MRP you can start at step 4
MODE_BIDI,
		MODE_DO,
		MODE_UNDO
	};
	void _node_replace_owner(Node *p_base, Node *p_node, Node *p_root, ReplaceOwnerMode p_mode = MODE_BIDI);
	void _load_request(const String &p_path);
	void _script_open_request(const Ref<Script> &p_script);
	void _push_item(Object *p_object);
	void _handle_select(Node *p_node);
	bool _cyclical_dependency_exists(const String &p_target_scene_path, Node *p_desired_node);
	bool _track_inherit(const String &p_target_scene_path, Node *p_desired_node);
	void _node_selected();
	void _node_renamed();
	void _script_created(Ref<Script> p_script);
	void _shader_created(Ref<Shader> p_shader);
	void _script_creation_closed();
	void _shader_creation_closed();
	void _delete_confirm(bool p_cut = false);
	void _delete_dialog_closed();
	void _toggle_editable_children_from_selection();
	void _toggle_editable_children(Node *p_node);
	void _toggle_placeholder_from_selection();
	void _node_prerenamed(Node *p_node, const String &p_new_name);