Have you ever been faced a problem when one ClickOnce deployment is causing a different deployment to be overwritten? I have...
Let me explain the problem to you. We have two versions of our application. We develop and then move to TEST. In this evironment we run all the possible scenarios just to make sure everything is working. All the stakeholders are generally involved in this step.
But releasing the controller in this environment overwrote the PRODUCTION version of my application. Then an interesting thing I found. "ClickOnce identifies deployment based on Certificate and Assembly Name". So if you have same certificate and assembly name for two applications, releasing one will overwrite other.
Just use different certificate for both versions and it should work. It worked for me atleast :)