In the use case you’ve described, you could also simply use project replace. Edit / Find / Project Replace
→ Replace the old name with the new name and voilà. Links should still work properly after that, but would read the new character’s name (or whatever the change was).
In this post linked below I explain how I manage complex linking across multiple documents with exact in-text locations within them :
There is a another post of mine previous to this one a bit upthread, in case it ain’t clear enough, but I don’t think it is essential.
It is worth also reading posts from @AmberV (posts from this same thread) who handles the matter somewhat differently. (But in a fashion that’s just as functional — if not perhaps even more ? —, as far as I can tell.)