### Godot version

4.1.1.stable

### System information

Godot v4.1.1.stable - Windows 10.0.22621 - Vulkan (Compatibility) - Intel(R) HD Graphics 5500 (Intel Corporation; 20.19.15.4835) - Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz (4 Threads)

### Issue description

CanvasModulate color reset to default when changing between scene that has CanvasModulate.

https://github.com/godotengine/godot/assets/55371083/ed6ca028-59c1-415d-9801-4965e52949dc



### Steps to reproduce

create two scene with CanvasModulate and switch back and forth.


### Minimal reproduction project

[canvas_modulate.zip](https://github.com/godotengine/godot/files/12100607/canvas_modulate.zip)

#include "canvas_modulate.h"
void CanvasModulate::_notification(int p_what) {
	switch (p_what) {
		case NOTIFICATION_ENTER_CANVAS: {
			if (is_visible_in_tree()) {
				RS::get_singleton()->canvas_set_modulate(get_canvas(), color);
				add_to_group("_canvas_modulate_" + itos(get_canvas().get_id()));
			}
		} break;
		case NOTIFICATION_EXIT_CANVAS: {
			if (is_visible_in_tree()) {
				RS::get_singleton()->canvas_set_modulate(get_canvas(), Color(1, 1, 1, 1));
				remove_from_group("_canvas_modulate_" + itos(get_canvas().get_id()));
			}
		} break;
		case NOTIFICATION_VISIBILITY_CHANGED: {
			if (is_visible_in_tree()) {
				RS::get_singleton()->canvas_set_modulate(get_canvas(), color);
				add_to_group("_canvas_modulate_" + itos(get_canvas().get_id()));
			} else {
				RS::get_singleton()->canvas_set_modulate(get_canvas(), Color(1, 1, 1, 1));
				remove_from_group("_canvas_modulate_" + itos(get_canvas().get_id()));
			}
			update_configuration_warnings();
		} break;
	}
}
void CanvasModulate::_bind_methods() {