### Godot version

4.1.dev4

### System information

Windows 10 - Godot 4.1.dev4 - Compatibility

### Issue description

When you syncronize 2 variables and both are in watched mode (taking out the "sync" property too) the server crashes

### Steps to reproduce

Create a MultiplayerSynchronizer, export 2 variables from a script, connect the server and the client and the server will crash instantly

In the project I give, the server and client are connected automatically when you use 2 debug instances when pressing play

### Minimal reproduction project

[minimalproject.zip](https://github.com/godotengine/godot/files/11665652/minimalproject.zip)

}
		return OK;
	} else {
		ERR_FAIL_COND_V(!peers_info.has(p_peer), ERR_INVALID_PARAMETER);
		if (is_visible == peers_info[p_peer].sync_nodes.has(sid)) {
			return OK;
		}
		if (is_visible) {
			peers_info[p_peer].sync_nodes.insert(sid);
		} else {
			peers_info[p_peer].sync_nodes.erase(sid);
			peers_info[p_peer].last_watch_usecs.erase(sid);
		}
		return OK;
	}
}
Error SceneReplicationInterface::_update_spawn_visibility(int p_peer, const ObjectID &p_oid) {
	const TrackedNode *tnode = tracked_nodes.getptr(p_oid);
	ERR_FAIL_COND_V(!tnode, ERR_BUG);
	MultiplayerSpawner *spawner = get_id_as<MultiplayerSpawner>(tnode->spawner);
	Node *node = get_id_as<Node>(p_oid);
	ERR_FAIL_COND_V(!node || !spawner || !spawner->is_multiplayer_authority(), ERR_BUG);
	ERR_FAIL_COND_V(!tracked_nodes.has(p_oid), ERR_BUG);
	const HashSet<ObjectID> synchronizers = tracked_nodes[p_oid].synchronizers;
	bool is_visible = true;
	for (const ObjectID &sid : synchronizers) {
		MultiplayerSynchronizer *sync = get_id_as<MultiplayerSynchronizer>(sid);
		ERR_CONTINUE(!sync);
		if (!sync->is_multiplayer_authority()) {
			continue;