### Godot version

4.0-stable_mono_win64

### System information

Windows 11 22H2

### Issue description

> 
![Script](https://user-images.githubusercontent.com/43518523/224719220-9ab4a56c-2e9c-4c1b-bebe-d62eb23e372b.png)
![Bug](https://user-images.githubusercontent.com/43518523/224719256-34436394-6d89-4a2e-a588-f9f11ae06ea1.png)
Expected: The parameter type of OnChildEnteredTree (underlined) in the dialog is Node, not Object.

### Steps to reproduce

1. Write a public (signal listener) C# function with a Node parameter.
2. Build .NET project.
3. Try to connect some suitable signal (e.g. "child_entered_tree") to that function, and it won't appear in the Pick dialog if `Compatible Methods Only` is on.

### Minimal reproduction project

[SignalParamBug.zip](https://github.com/godotengine/godot/files/10958019/SignalParamBug.zip)

if (instance) {
						scr->pending_replace_placeholders.erase(obj->get_instance_id());
						obj->set_script_instance(instance);
						continue;
					}
				}
				
				obj->set_script(scr);
#if DEBUG_ENABLED
				
				CRASH_COND(!obj->get_script_instance()->is_placeholder());
#endif
			}
		}
		to_reload_state.push_back(scr);
	}
	for (Ref<CSharpScript> &scr : to_reload_state) {
		for (const ObjectID &obj_id : scr->pending_reload_instances) {
			Object *obj = ObjectDB::get_instance(obj_id);
			if (!obj) {
				scr->pending_reload_state.erase(obj_id);
				continue;
			}
			ERR_CONTINUE(!obj->get_script_instance());
			CSharpScript::StateBackup &state_backup = scr->pending_reload_state[obj_id];
			CSharpInstance *csi = CAST_CSHARP_INSTANCE(obj->get_script_instance());
			if (csi) {
				Dictionary properties;
				for (const Pair<StringName, Variant> &G : state_backup.properties) {
					properties[G.first] = G.second;