I was getting this error, which some blogs go into great depth on and which another user from the linkA reference to the component 'System' already exists in the ... had the same issue and it looks like it took some time to resolve it.
In my solution, there was an alias to this assembly as using Keyboard = Microsoft.VisualStudio.TestTools.UITesting.Keyboard. I thought "Aha ... it sees this ..." so I commented it out, no joy.
The only thing that fixed it for me was to exclude all code files so that I would not build with any errors after removing all assemblies. I then removed all assemblies and did a successful build. Then added the assemblies one by one starting with Microsoft.VisualStudio.TestTools.UITesting thinking I'd find the offender in the process. No, did not but the nuclear option of building with a "blank" solution solved the issue -- I was now able to add the reference with no problem. And of course uncomment the alias Keyboard = ... with no problem.
I'm sure the actual answer might be to edit the solution xml file, since I suspect this is due to some corruption in the .sln file. What caused that I don't know.
I created a new CodedUITest solution to contain all common methods for UI tests I've created. This makes a project with all common items that a master Coded UI Test solution, which will contain all individual Coded UI Tests, can import, etc.
All that happened with this common project was to create it, delete the default .cs file and add in the files I want common to all other tests. And in that, this error came up.
Well, if it helps ... and nothing else works ... exclude the files from the project, nuke the references and add one by one to fix the problem. Again, it seems that somehow a config file someplace thinks there is an existing reference and I think zapping all references and building clears whatever this is, config or what have you.
Michael Durthaler