I know that SQL SERVER 2016 can co-exist with previous versions on the same server. I wonder however if there are any gotchas that I should be aware of? We have a test server that already has 2008r2, 2012 and 2014 instances on it. Is there any chance that there are anything on the existing instances that will behave differently if we install 2016 also on the same server?
Each instance is a separate service with its own set of folders, system databases, agent and binaries so they do not directly impact each other. All of the instances, however, will share the management tools, and older versions of the management tools cannot manage newer instances. You can avoid trouble by installing the oldest version instances first and install the newest version last. This way SSMS, SSCM, Profiler, etc will be the 2016 version and capable of managing all previous versions.
Another thing to consider is your Max Server Memory setting. You want to make sure that the combined total of all your max server memory settings minus the total memory in the box, will still leave enough memory for the operating system and other applications.
The last thing I would consider is your CPU. It is possible for instances of SQL to so consume resources that another instance could effectively be 'starved'. A work around for this is to set affinity mask so that each instance is assigned a set number of CPU.