I am not familiar with all the causes of this phenomenon, but it happens to me from time to time, and I know why it is for me. I work with "clone" images all the time with dev work. When a clone is mounted alongside booting into the main volume, Launch Services, which keeps track of applications used to open certain file types, "sees" the other application files on the mounted clone volume, and adds them to the database, resulting in the apparent duplication of "open with" entries.
Resetting the 'Open With' menu will remove duplicates and ghost applications (ones you have deleted) from the list. You reset the 'Open With' menu by rebuilding the Launch Services database your Mac maintains. There are multiple ways to rebuild the Launch Services database, including third-party system utilities like Cocktail and Onyx.
If you don't own a system utility that can rebuild the Launch Services database, don't worry; you can perform the rebuild yourself using Terminal.
Using Terminal to Rebuild the Launch Services Database:
Launch Terminal, located at /Applications/ Utilities/.
For OS X 10.5.x and later, enter the following at the Terminal prompt:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.fram ework/Support/lsregister -kill -r -domain local -domain system -domain user
----------------
I don't know wjhy it is happening for you, but rebuilding the database will at least reset things to normal. The question to ask is whether you have other mounted volumes, say from other systems on your network, that contain Mac Apps.
I have also found a way to keep it from happening (in certain cases, for my dev work). When I create a clone, I also create what is called a "fstab" file entry, in the fstab file. This entry prevents named drives from auto-mounting. So, if I boot to a clone, my main volume on my internal SSD won't mount. Hence, no extraneous Launch Services database entries will created on the clone drive. If however, I boot to my main SSD, and then mount a clone, I don't use any fstab entries on the main SSD. This just means I have to periodically rebuild the Launch Services database. It is way too much trouble keeping fstab entries for all my clone drives on my main SSD. I only use the fstab method on the clones themselves.