### 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
case GDScriptParser::DictionaryNode::LUA_TABLE:
						
						StringName key = dn->elements[i].key->reduced_value.operator StringName();
						element = codegen.add_constant(key);
						break;
				}
				elements.push_back(element);
				element = _parse_expression(codegen, r_error, dn->elements[i].value);
				if (r_error) {
					return GDScriptCodeGenerator::Address();
				}
				elements.push_back(element);
			}
			gen->write_construct_dictionary(result, elements);
			for (int i = 0; i < elements.size(); i++) {
				if (elements[i].mode == GDScriptCodeGenerator::Address::TEMPORARY) {
					gen->pop_temporary();
				}
			}
			return result;
		} break;
		case GDScriptParser::Node::CAST: {
			const GDScriptParser::CastNode *cn = static_cast<const GDScriptParser::CastNode *>(p_expression);
			GDScriptDataType cast_type = _gdtype_from_datatype(cn->get_datatype(), codegen.script);
			GDScriptCodeGenerator::Address result;
			if (cast_type.has_type) {
				
				result = codegen.add_temporary(cast_type);
				GDScriptCodeGenerator::Address src = _parse_expression(codegen, r_error, cn->operand);
				gen->write_cast(result, src, cast_type);