You should consider storing your Data in a proper Database, where each entry has a proper unique PrimaryKey. The job of the UI then is to allow the user "to choose the right primary key, without having to know of the primary key".
There are some imbedded Database systems, wich directly read/write to a file (so no extra DB Server/central DB server is nessesary):
http://stackoverflow.com/questions/684595/embedded-database-for-net
If you already know DB using you might even be able to scrape by with a CSV Reader Class:
http://www.codeproject.com/Articles/9258/A-Fast-CSV-Reader
Right now it seems like you try to reinvent the wheel of DB programming and run into problems that have been long solved there (like how to uniquely identify a Tupel).
Also you should post code in code blocks. It's the 2nd option from the right out of a total of 8 markup functions for this Forum, tries to autodetect the language and improoves redability of code immeasurably.
Let's talk about MVVM: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/b1a8bf14-4acd-4d77-9df8-bdb95b02dbe2 Please mark post as helpfull and answers respectively.