Checking for one-letter differences isn't hard. Neither is checking for two letters that have been swapped by mistake. However, matching according to sound differences, especially in several difference languages at once, is going to be next to impossible. What you need is a learning system - one that lists all unmatched last names for both desks in alphabetic order, and remembers which name pairs you pick. Once all last names have been matched up or marked as having no match, you can then sort by last names (each last name being followed by its aliases), and go to work on first names. After several months of use, the system should be able to figure out almost all the matches on its own.
I assume you have a large sampling of names to work from? Otherwise you could do this by hand, and wouldn't need a script for it.