### Godot version

4.0.2.stable.mono

### System information

Windows 10 - 4.0.2.stable.mono - Any Renderer

### Issue description

In a script with an `@export` variable (with a non-default value), Godot will replace the first variable in the category with the same name. For example, if you're exporting a variable called "Vector", and the value is set to a non-default value, the first variable in the category called "Vector" will also be changed to the same value.

### Steps to reproduce

Attach said script to a node:
```
extends Node

@export var Vector: Vector2
@export_category("Vector")
@export var Var2: float = 1

func _process(delta):
	print(Var2)
```
When changing the value of the `Vector` export variable, the variable Var2 will contain the same value. This does not happen when the `@export_category` has a different name.

### Minimal reproduction project

N/A
}
	p_script->member_functions.clear();
	for (const KeyValue<StringName, GDScriptFunction *> &E : member_functions) {
		memdelete(E.value);
	}
	member_functions.clear();
	p_script->static_variables.clear();
	if (p_script->implicit_initializer) {
		memdelete(p_script->implicit_initializer);
	}
	if (p_script->implicit_ready) {
		memdelete(p_script->implicit_ready);
	}
	if (p_script->static_initializer) {
		memdelete(p_script->static_initializer);
	}
	p_script->member_functions.clear();
	p_script->member_indices.clear();
	p_script->member_info.clear();
	p_script->static_variables_indices.clear();
	p_script->static_variables.clear();
	p_script->_signals.clear();
	p_script->initializer = nullptr;
	p_script->implicit_initializer = nullptr;
	p_script->implicit_ready = nullptr;
	p_script->static_initializer = nullptr;
	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)) {