### Godot version

4.0 stable

### System information

Manjaro Linux using i3, Foward+

### Issue description

Whenever the tileset property of any tilemap node is like open in the editor like this:
![image](https://user-images.githubusercontent.com/13070158/223416376-be0d7bca-1af8-43ad-9f19-a22de0a5a3c6.png)

If I select any other node and then select the TileMap node again it will print this error:
![image](https://user-images.githubusercontent.com/13070158/223416512-abbf4d45-e6c8-4c5f-894a-9b5810bf0cc2.png)
` editor/editor_node.cpp:8152 - Condition "plugins_list.has(p_plugin)" is true.`

This seems to be actually true to any plugin or `EditorInspectorPlugin` that edits node. In my project I have a InspectorPlugin that adds some buttons in `_parse_begin` for a specific kind of node, and that node also has an exported custom resource, and whenever I select any of that Node and their resource is open for edit in the Inspector I get the same error.

### Steps to reproduce

- Create a TileMap node on any scene
- Create a new TileSet resource on the TileMap node
- click on the TileSet resource to edit it in place in the TileMap node
- Select any other node
- Select the TileMap node again.


### Minimal reproduction project

[plugin_error_resource_edit.zip](https://github.com/godotengine/godot/files/10909135/plugin_error_resource_edit.zip)

- Open main scene
- Select the TileMap node
- Click the tileset resource in the inspector
- Select the root node
- Select TileMap node again
for (int x = drawn_grid_rect.position.x; x < (drawn_grid_rect.position.x + drawn_grid_rect.size.x); x++) {
						for (int y = drawn_grid_rect.position.y; y < (drawn_grid_rect.position.y + drawn_grid_rect.size.y); y++) {
							Vector2i pos_in_rect = Vector2i(x, y) - drawn_grid_rect.position;
							
							float left_opacity = CLAMP(Math::inverse_lerp(0.0f, (float)fading, (float)pos_in_rect.x), 0.0f, 1.0f);
							float right_opacity = CLAMP(Math::inverse_lerp((float)drawn_grid_rect.size.x, (float)(drawn_grid_rect.size.x - fading), (float)(pos_in_rect.x + 1)), 0.0f, 1.0f);
							float top_opacity = CLAMP(Math::inverse_lerp(0.0f, (float)fading, (float)pos_in_rect.y), 0.0f, 1.0f);
							float bottom_opacity = CLAMP(Math::inverse_lerp((float)drawn_grid_rect.size.y, (float)(drawn_grid_rect.size.y - fading), (float)(pos_in_rect.y + 1)), 0.0f, 1.0f);
							float opacity = CLAMP(MIN(left_opacity, MIN(right_opacity, MIN(top_opacity, bottom_opacity))) + 0.1, 0.0f, 1.0f);
							Transform2D tile_xform;
							tile_xform.set_origin(tile_map->map_to_local(Vector2(x, y)));
							tile_xform.set_scale(tile_shape_size);
							Color color = grid_color;
							color.a = color.a * opacity;
							tile_set->draw_tile_shape(p_overlay, xform * tile_xform, color, false);
						}
					}
				}
			}
			
			for (const KeyValue<Vector2i, TileMapCell> &E : preview) {
				Transform2D tile_xform;
				tile_xform.set_origin(tile_map->map_to_local(E.key));
				tile_xform.set_scale(tile_set->get_tile_size());
				if (!(drag_erasing || erase_button->is_pressed()) && random_tile_toggle->is_pressed()) {
					tile_set->draw_tile_shape(p_overlay, xform * tile_xform, Color(1.0, 1.0, 1.0, 0.5), true);
				} else {
					if (tile_set->has_source(E.value.source_id)) {
						TileSetSource *source = *tile_set->get_source(E.value.source_id);
						TileSetAtlasSource *atlas_source = Object::cast_to<TileSetAtlasSource>(source);