This seems like an interesting problem. Generically, it's de-duplication.
I can imagine that it would seem more direct to some people comfortable with relational databases to just make the changes in the database. I created an app against SQL Server last week, and the tables seemed simple, with a single primary key. It might be easy enough to search, sort, query, etc. using a database tool, and just update the foreign key field in the child tables to point to the "winning" client record. Is this to be avoided at all costs, or to be undertaken subject to certain precautions?