### 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)
if (p_can_rename) {
		tree->set_allow_rmb_select(true);
		tree->connect("item_mouse_selected", callable_mp(this, &SceneTreeEditor::_rmb_select));
		tree->connect("empty_clicked", callable_mp(this, &SceneTreeEditor::_empty_clicked));
	}
	tree->connect("cell_selected", callable_mp(this, &SceneTreeEditor::_selected_changed));
	tree->connect("item_edited", callable_mp(this, &SceneTreeEditor::_renamed));
	tree->connect("multi_selected", callable_mp(this, &SceneTreeEditor::_cell_multi_selected));
	tree->connect("button_clicked", callable_mp(this, &SceneTreeEditor::_cell_button_pressed));
	tree->connect("nothing_selected", callable_mp(this, &SceneTreeEditor::_deselect_items));
	error = memnew(AcceptDialog);
	add_child(error);
	warning = memnew(AcceptDialog);
	add_child(warning);
	warning->set_title(TTR("Node Configuration Warning!"));
	last_hash = 0;
	blocked = 0;
	update_timer = memnew(Timer);
	update_timer->connect("timeout", callable_mp(this, &SceneTreeEditor::_update_tree).bind(false));
	update_timer->set_one_shot(true);
	update_timer->set_wait_time(0.5);
	add_child(update_timer);
	script_types = memnew(List<StringName>);
	ClassDB::get_inheriters_from_class("Script", script_types);
}
SceneTreeEditor::~SceneTreeEditor() {
	memdelete(script_types);
}
/******** DIALOG *********/
void SceneTreeDialog::popup_scenetree_dialog() {