### Godot version

4.1.1

### System information

windows 11

### Issue description

When registering a type with class_name and using that class name to declare a variable in code only, autocomplete works as expected anywhere in other nodes/scenes. However, if making a custom scene node that extends a script with the class_name, if that custom scene is instantiated in a different scene, even if the type is specified, it only shows the parent node's functions and not any of the extended functionality. I have made a basic project showing the issue

### Steps to reproduce

I have made a very simple project showing the issue. https://github.com/mmmmmmmmmmmmmmmmmmmdonuts/godot_4_autocomplete_issue essentially, the extended Node scene will only show the custom function when both the type is specified as well as the type afterwards following "as" 
e.g. `@onready var my_class_4: MyClass = $MyClass4 as MyClass`

### Minimal reproduction project

https://github.com/mmmmmmmmmmmmmmmmmmmdonuts/godot_4_autocomplete_issue
GDScriptCompletionIdentifier base;
		base.value = p_context.base;
		base.type.type_source = GDScriptParser::DataType::ANNOTATED_EXPLICIT;
		base.type.kind = GDScriptParser::DataType::CLASS;
		base.type.class_type = p_context.current_class;
		base.type.is_meta_type = p_context.current_function && p_context.current_function->is_static;
		if (_guess_identifier_type_from_base(p_context, base, p_identifier->name, r_type)) {
			return true;
		}
	}
	
	if (ScriptServer::is_global_class(p_identifier->name)) {
		String script = ScriptServer::get_global_class_path(p_identifier->name);
		if (script.to_lower().ends_with(".gd")) {
			Error err = OK;
			Ref<GDScriptParserRef> parser = GDScriptCache::get_parser(script, GDScriptParserRef::INTERFACE_SOLVED, err);
			if (err == OK) {
				r_type.type.type_source = GDScriptParser::DataType::ANNOTATED_EXPLICIT;
				r_type.type.script_path = script;
				r_type.type.class_type = parser->get_parser()->get_tree();
				r_type.type.is_meta_type = true;
				r_type.type.is_constant = false;
				r_type.type.kind = GDScriptParser::DataType::CLASS;
				r_type.value = Variant();
				p_context.dependent_parsers.push_back(parser);
				return true;
			}
		} else {
			Ref<Script> scr = ResourceLoader::load(ScriptServer::get_global_class_path(p_identifier->name));
			if (scr.is_valid()) {