### Godot version

4.1.dev (a7276f1ce0)

### System information

MacOS 13.3 M1 Pro

### Issue description

when doing a Batch rename with two nodes being present in a `NodePath`. Batch Rename will try to update the `NodePath` but will fail which will results in this error
<img width="515" alt="Capture d’écran 2023-04-14 à 23 59 02" src="https://user-images.githubusercontent.com/66184050/232161972-57b49435-7707-4e41-bfed-613b073477b7.png">


### Steps to reproduce

1. Open the minimal reproduction project or follow the instruction below:
    1. first reproduce the following tree (this is because of #76069) <img width="235" alt="Capture d’écran 2023-04-14 à 23 09 47" src="https://user-images.githubusercontent.com/66184050/232155382-da3f9e22-26fb-4e10-bdcb-07cb60c25ea1.png">
    2. add a script to the root and export a `NodePath` variable
    3. Set the exported variable to the `GrandChild` node
4. select all node except the root.
5. Batch rename `C` to `T` for example
6. Inspect the root node. You should have a broken `NodePath` and an error.

### Minimal reproduction project

[test1.zip](https://github.com/godotengine/godot/files/11237175/test1.zip)
TreeItem *which = tree->get_edited();
	ERR_FAIL_COND(!which);
	NodePath np = which->get_metadata(0);
	Node *n = get_node(np);
	ERR_FAIL_COND(!n);
	String raw_new_name = which->get_text(0);
	if (raw_new_name.strip_edges().is_empty()) {
		// If name is empty, fallback to class name.
		if (GLOBAL_GET("editor/naming/node_name_casing").operator int() != NAME_CASING_PASCAL_CASE) {
			raw_new_name = Node::adjust_name_casing(n->get_class());
		} else {
			raw_new_name = n->get_class();
		}
	}
	String new_name = raw_new_name.validate_node_name();
	if (new_name != raw_new_name) {
		error->set_text(TTR("Invalid node name, the following characters are not allowed:") + "\n" + String::get_invalid_node_name_characters());
		error->popup_centered();
		if (new_name.is_empty()) {
			which->set_text(0, n->get_name());
			return;
		}