### 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)

const HashSet<ObjectID> synchronizers = tnode->synchronizers;
	for (const ObjectID &sid : synchronizers) {
		MultiplayerSynchronizer *sync = get_id_as<MultiplayerSynchronizer>(sid);
		if (!sync->is_multiplayer_authority()) {
			continue;
		}
		ERR_CONTINUE(!sync);
		ERR_FAIL_COND_V(sync->get_replication_config().is_null(), ERR_BUG);
		for (const NodePath &prop : sync->get_replication_config()->get_spawn_properties()) {
			state_props.push_back(prop);
		}
		
		if (sync->get_net_id() == 0) {
			sync->set_net_id(++last_net_id);
		}
		sync_ids.push_back(sync->get_net_id());
	}
	int state_size = 0;
	Vector<Variant> state_vars;
	Vector<const Variant *> state_varp;
	if (state_props.size()) {
		Error err = MultiplayerSynchronizer::get_state(state_props, p_node, state_vars, state_varp);
		ERR_FAIL_COND_V_MSG(err != OK, err, "Unable to retrieve spawn state.");
		err = MultiplayerAPI::encode_and_compress_variants(state_varp.ptrw(), state_varp.size(), nullptr, state_size);
		ERR_FAIL_COND_V_MSG(err != OK, err, "Unable to encode spawn state.");
	}
	
	int path_id = multiplayer->get_path_cache()->make_object_cache(p_spawner);
	CharString cname = p_node->get_name().operator String().utf8();
	int nlen = encode_cstring(cname.get_data(), nullptr);