### Godot version

v4.1.rc1.official [1f9e540f1]

### System information

Windows 10

### Issue description

Attempting to reorder the children of a TabContainer results in an unintended ordering and incorrect undo states.

Also happens in v4.0.3.stable.official [5222a99f5].

https://github.com/godotengine/godot/assets/3820082/2c2458e3-88ad-46d9-8a04-f289a049984a



### Steps to reproduce

1. Add a new TabContainer
2. Add a few children to it
3. Drag and drop to erroneously reorder them
4. Attempt to undo the change

### Minimal reproduction project

N/A
dup->set_scene_file_path(String()); 
			ur->add_do_method(EditorNode::get_singleton(), "set_edited_scene", dup);
		} else {
			ur->add_do_method(paste_parent, "add_child", dup, true);
		}
		for (KeyValue<const Node *, Node *> &E2 : duplimap) {
			Node *d = E2.value;
			
			if (d != dup && E2.key->get_owner() == node) {
				ur->add_do_method(d, "set_owner", owner);
			}
		}
		if (dup != owner) {
			ur->add_do_method(dup, "set_owner", owner);
		}
		ur->add_do_method(editor_selection, "add_node", dup);
		if (dup == paste_parent) {
			ur->add_undo_method(EditorNode::get_singleton(), "set_edited_scene", (Object *)nullptr);
		} else {
			ur->add_undo_method(paste_parent, "remove_child", dup);
		}
		ur->add_do_reference(dup);
		if (node_clipboard.size() == 1) {
			ur->add_do_method(EditorNode::get_singleton(), "push_item", dup);
		}
	}
	ur->commit_action();
	return pasted_nodes;
}
List<Node *> SceneTreeDock::get_node_clipboard() const {