### Godot version

v4.0.beta17.mono.official [c40020513]

### System information

Window 11, Forward+, GTX 1060

### Issue description

Adding two theme variations in a row result to a  crash.

https://user-images.githubusercontent.com/93253123/217037249-1ce1d56d-beb6-4435-83ad-9f8a07fe0e96.mp4



### Steps to reproduce

1. Create a project.
2. Create a theme.
3. Double click to go in the theme editor.
4. Click on manage items buttons.
5. In the add type field type a name to add a type.
6. type another name to add a second type.
7. Crash.

### Minimal reproduction project

[ThemeVariationCrash.zip](https://github.com/godotengine/godot/files/10665863/ThemeVariationCrash.zip)

Ref<StyleBox> stylebox;
	if (Object::cast_to<EditorResourcePicker>(p_editor)) {
		stylebox = Object::cast_to<EditorResourcePicker>(p_editor)->get_edited_resource();
	}
	EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton();
	ur->create_action(TTR("Pin Stylebox"));
	ur->add_do_method(this, "_pin_leading_stylebox", p_item_name, stylebox);
	if (leading_stylebox.pinned) {
		ur->add_undo_method(this, "_pin_leading_stylebox", leading_stylebox.item_name, leading_stylebox.stylebox);
	} else {
		ur->add_undo_method(this, "_unpin_leading_stylebox");
	}
	ur->commit_action();
}
void ThemeTypeEditor::_pin_leading_stylebox(String p_item_name, Ref<StyleBox> p_stylebox) {
	if (leading_stylebox.stylebox.is_valid()) {
		leading_stylebox.stylebox->disconnect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
	}
	LeadingStylebox leader;
	leader.pinned = true;
	leader.item_name = p_item_name;
	leader.stylebox = p_stylebox;
	leader.ref_stylebox = (p_stylebox.is_valid() ? p_stylebox->duplicate() : Ref<Resource>());
	leading_stylebox = leader;
	if (p_stylebox.is_valid()) {
		p_stylebox->connect("changed", callable_mp(this, &ThemeTypeEditor::_update_stylebox_from_leading));
	}
	_update_type_items();
}
void ThemeTypeEditor::_on_unpin_leader_button_pressed() {