### Godot version

v4.1.beta1.official [828ec2c5d]

### System information

Godot v4.1.beta1 - Windows 10.0.23475 - Vulkan (Mobile) - dedicated NVIDIA GeForce RTX 3060 (NVIDIA; 31.0.15.3550) - AMD Ryzen 5 5500 (12 Threads)

### Issue description

I have an exported array for a given type I created with class_name

```
extends Node3D
class_name Enemy
```

It is exported as follow

```
@export var rollable_hazards: Array[Enemy]
```

I populate it using the editor and it works fine, but sometimes it gets emptied after saving the exporting scene. Not sure if it relates with #62916 and/or #77735.

Here's a screen recording I did showing the issue

https://github.com/godotengine/godot/assets/8123916/09d5df4e-83af-4459-b46b-1c62f78c2bb5

Please let me know if you need any additional information.

### Steps to reproduce

1. Export an array from a scene script
2. Populate it with other nodes 
3. Edit the exporting script and save it

### Minimal reproduction project

If you check this branch out, commit [327d03d](https://github.com/lazaromenezes/dungeon-explorer-godot/commit/327d03da6c995ed586b8bc8764bdb051bb42bf7b) was the base for the changes I had into the screen recording.
d["variants"] = variants;
	Vector<int> rnodes;
	d["node_count"] = nodes.size();
	for (int i = 0; i < nodes.size(); i++) {
		const NodeData &nd = nodes[i];
		rnodes.push_back(nd.parent);
		rnodes.push_back(nd.owner);
		rnodes.push_back(nd.type);
		uint32_t name_index = nd.name;
		if (nd.index < (1 << (32 - NAME_INDEX_BITS)) - 1) { 
			name_index |= uint32_t(nd.index + 1) << NAME_INDEX_BITS; 
		}
		rnodes.push_back(name_index);
		rnodes.push_back(nd.instance);
		rnodes.push_back(nd.properties.size());
		for (int j = 0; j < nd.properties.size(); j++) {
			rnodes.push_back(nd.properties[j].name);
			rnodes.push_back(nd.properties[j].value);
		}
		rnodes.push_back(nd.groups.size());
		for (int j = 0; j < nd.groups.size(); j++) {
			rnodes.push_back(nd.groups[j]);
		}
	}
	d["nodes"] = rnodes;
	Vector<int> rconns;
	d["conn_count"] = connections.size();
	for (int i = 0; i < connections.size(); i++) {
		const ConnectionData &cd = connections[i];
		rconns.push_back(cd.from);