For text cleanup, I found that my old friend Regex was needed to clear punctuation. Also, I found occurrences of prefixed and postfixed adjectives (e.g., colors) in the names so I ended up sorting the words within a name:
testCase = "(Green)\nd'Argentéuil";
StringJoin[
Riffle[Sort[
StringSplit[
StringDelete[RemoveDiacritics[testCase],
RegularExpression["[[:punct:]]"]]]], " "]] // InputForm
"dArgenteuil Green"
For the harder case of mixed spellings, both EditDistance and WordStem have merits:
mixedSpellingCase = {{"Bourjassotte", "Bourjasotte"}, {"Marseilles",
"Marseillaise"}};
Print[EditDistance[#[[1]], #[[2]]] & /@ mixedSpellingCase];
Print[WordStem[mixedSpellingCase] // InputForm];
{1,3}
{{"Bourjassott", "Bourjasott"}, {"Marseil", "Marseillais"}}