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

CSharpScript::StateBackup state;
			Dictionary properties;
			GDMonoCache::managed_callbacks.CSharpInstanceBridge_SerializeState(
					csi->get_gchandle_intptr(), &properties, &state.event_signals);
			for (const Variant *s = properties.next(nullptr); s != nullptr; s = properties.next(s)) {
				StringName name = *s;
				Variant value = properties[*s];
				state.properties.push_back(Pair<StringName, Variant>(name, value));
			}
			owners_map[obj->get_instance_id()] = state;
		}
	}
	
	for (Ref<CSharpScript> &scr : scripts) {
		while (scr->instances.begin()) {
			Object *obj = *scr->instances.begin();
			obj->set_script(Ref<RefCounted>()); 
		}
		scr->was_tool_before_reload = scr->tool;
		scr->_clear();
	}
	
	if (gdmono->reload_project_assemblies() != OK) {
		
		
		for (Ref<CSharpScript> &scr : to_reload) {
			for (const KeyValue<ObjectID, CSharpScript::StateBackup> &F : scr->pending_reload_state) {
				Object *obj = ObjectDB::get_instance(F.key);
				if (!obj) {
					continue;