Merging project/solution files is a well-known disaster among developers/SCM admins performing merges in their source control.
Take, for example, a common scenario:
What we do with resource files (not so much trouble with project files) is to sort them prior merging. We've configured the merge command on Plastic to actually run a sort (a different app we've developed for that, we can share the code if you're interested, nothing fancy) before merging, so all the random relocations go away... Hope it helps.
I created a tool to compare and merge solution file (http://slntools.codeplex.com). It's a lot easier to merge a solution with the tool compared to a 'generic merger'. It cannot handle project files thought.