Would it work if you replaced “he” or “she” with “candidate” and “his” or “her” with “candidate’s” or with “their”?

That will prevent errors of concord (everything remains singular so you don’t have to change the verbs) and the sentences will mostly flow fine.

Your example would become: “Candidate is an esteemed archaeologist and writer based in Greece. Candidates’s (or “their”) primary residence is Athens, but they spend much of their time in Marrakech.

Hmm this could work. I would prefer "they"/"their", but I quite like the "the candidate"/"their" option!

That seems to work. I will have a play around with this to see if it reads well with a few more examples.

I’m not sure how much my suggestions answer your original question, but in the pursuit of proper grammatical structure when trying to rewrite speech, compromise [0] might be of use to you. I’ve only played around with it for a few hours at most, but from my limited experience it is a very effective (if verbose and/or a little bloated in it’s API) tool for language analysis. With some tomfoolery I’m confident you could combine it with the GP’s recommendation of alexjs to replace strings slightly-less-naively.

[0] https://github.com/spencermountain/compromise