### Godot version

4.0.2

### System information

Linux Mint 21

### Issue description

On the minimal reproduction project, with a 3 level hierarchy and 2 autoloads, when running the game we get a parse error in daughter.gd where we use a parent member.

**Additional remarks :** 
- We have a circular dependency involving one of the autoloads : Autoload2 references Daughter which references Mother which references GrandMother which references Autoload2
- Autoload1 references Mother which references GrandMother which references Autoload2
- We don't have any error if we switch the 2 autoloads order in Project Settings
- We get the same error if _member is put in GrandMother class instead of Mother class
- We still get the issue if we disable Autoload1 in Project Settings

**A quick look in Godot source code :**
- GDScriptCache::full_gdscript_cache contains invalid scripts (ie script->is_valid() is false)
- I think the engine tries to compile GrandMother, then Daughter (but it fails), then Mother

(This issue might be related to https://github.com/godotengine/godot/issues/75388.)

### Steps to reproduce

To get the parse error :
- Open the minimal reproduction project
- Run the game
You'll get `Parser Error: Identifier not found: _member`.

### Minimal reproduction project

[ParseError_Project.zip](https://github.com/godotengine/godot/files/11725756/ParseError_Project.zip)

p_script->clearing = false;
	p_script->tool = parser->is_tool();
	if (!p_script->name.is_empty()) {
		if (ClassDB::class_exists(p_script->name) && ClassDB::is_class_exposed(p_script->name)) {
			_set_error("The class '" + p_script->name + "' shadows a native class", p_class);
			return ERR_ALREADY_EXISTS;
		}
	}
	GDScriptDataType base_type = _gdtype_from_datatype(p_class->base_type, p_script);
	int native_idx = GDScriptLanguage::get_singleton()->get_global_map()[base_type.native_type];
	p_script->native = GDScriptLanguage::get_singleton()->get_global_array()[native_idx];
	ERR_FAIL_COND_V(p_script->native.is_null(), ERR_BUG);
	
	switch (base_type.kind) {
		case GDScriptDataType::NATIVE:
			
			break;
		case GDScriptDataType::GDSCRIPT: {
			Ref<GDScript> base = Ref<GDScript>(base_type.script_type);
			if (base.is_null()) {
				return ERR_COMPILATION_FAILED;
			}
			if (main_script->has_class(base.ptr())) {
				Error err = _populate_class_members(base.ptr(), p_class->base_type.class_type, p_keep_state);
				if (err) {
					return err;
				}
			} else if (!base->is_valid()) {
				Error err = OK;
				Ref<GDScript> base_root = GDScriptCache::get_full_script(base->path, err, p_script->path);