### Godot version

v4.0.beta17.mono.official [c40020513]

### System information

Windows11,Godot Mobile backend

### Issue description


https://user-images.githubusercontent.com/15378256/216791307-138e2206-f841-42b4-a9b2-b374da97affc.mp4

When selecting different CollisionShape2Ds, only the first selected gizmo is active and can be used even when selecting different   CollisionShape2D

### Steps to reproduce

Same root, 2 or more CollisionShape2Ds.

Minimal reproduction project uploaded, simply run editor and select between the CollisionShape2Ds.

### Minimal reproduction project

[bug1.zip](https://github.com/godotengine/godot/files/10609753/bug1.zip)
new_additive_node_entry.node = p_node;
		new_additive_node_entry.parent = p_root->get_path_to(p_node->get_parent());
		new_additive_node_entry.owner = p_node->get_owner();
		new_additive_node_entry.index = p_node->get_index();
		Node2D *node_2d = Object::cast_to<Node2D>(p_node);
		if (node_2d) {
			new_additive_node_entry.transform_2d = node_2d->get_relative_transform_to_parent(node_2d->get_parent());
		}
		Node3D *node_3d = Object::cast_to<Node3D>(p_node);
		if (node_3d) {
			new_additive_node_entry.transform_3d = node_3d->get_relative_transform(node_3d->get_parent());
		}
		p_addition_list.push_back(new_additive_node_entry);
		return;
	}
	for (int i = 0; i < p_node->get_child_count(); i++) {
		Node *child = p_node->get_child(i);
		update_diff_data_for_node(p_edited_scene, p_root, child, p_modification_table, p_addition_list);
	}
}
void EditorNode::open_request(const String &p_path) {
	if (!opening_prev) {
		List<String>::Element *prev_scene_item = previous_scenes.find(p_path);
		if (prev_scene_item != nullptr) {
			prev_scene_item->erase();
		}
	}
	load_scene(p_path); 
}
void EditorNode::edit_foreign_resource(Ref<Resource> p_resource) {