### 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
for (int i = 0; i < p_block->statements.size(); i++) {
		const GDScriptParser::Node *s = p_block->statements[i];
#ifdef DEBUG_ENABLED
		
		gen->write_newline(s->start_line);
#endif
		switch (s->type) {
			case GDScriptParser::Node::MATCH: {
				const GDScriptParser::MatchNode *match = static_cast<const GDScriptParser::MatchNode *>(s);
				codegen.start_block();
				
				GDScriptCodeGenerator::Address value = codegen.add_local("@match_value", _gdtype_from_datatype(match->test->get_datatype(), codegen.script));
				GDScriptCodeGenerator::Address value_expr = _parse_expression(codegen, err, match->test);
				if (err) {
					return err;
				}
				
				
				gen->write_assign(value, value_expr);
				if (value_expr.mode == GDScriptCodeGenerator::Address::TEMPORARY) {
					codegen.generator->pop_temporary();
				}
				
				GDScriptDataType typeof_type;
				typeof_type.has_type = true;
				typeof_type.kind = GDScriptDataType::BUILTIN;
				typeof_type.builtin_type = Variant::INT;
				GDScriptCodeGenerator::Address type = codegen.add_local("@match_type", typeof_type);
				Vector<GDScriptCodeGenerator::Address> typeof_args;
				typeof_args.push_back(value);