How do I set up high availability at the instance level? I have two database instances (Instance A, Instance B) of SQL Server, each one hosted on a separate VM using windows server 2012. Instance A has SQL Server 2008 R2, instance B has Sql server 2012. I'm not a DBA, and I'm completely lost as to how to provide high availability for both of these instances. 

Ideally, I'd like someone to point me in the right direction to a solution that allows these instances to automatically fail over gracefully if we have problems, preferably at the instance level, since I have a bunch of databases in each instance. I have enough hardware to host these instances somewhere else on the network, and several gigabits of network bandwidth to get this done.

Please go ahead and assume that I am an idiot.

Mew your cat into the sun, brother!
It sounds like Failover Clustering is what you may be looking for.  You can have the instance failover (though there will be a period of disconnect for end-users, but that is typically minimal while the passive node becomes active and SQL Server starts up).  SQL Server Failover Cluster Instances (FCI) are the way to achieve high availability at the instance level.

It is noteworthy, that this technology sits on top of WSFC respectively, and you will require shared storage (this will be different if you are on SQL Server 2012 implementing AlwaysOn Availability Groups, but that is not instance-wide failover).

Failover Cluster Instances are a robust technology within themselves, much more that can be directed through a Stack Exchange answer, so my recommendation is to use the above link and if you have any more specific questions feel free to ask them on a separate question.