Why don't you just set the database type on SQL 2012 to SQL 2008. Then everything that used to work will continue to work.
I'm not convinced that the behavior you describe is actually failing. I run SQL 2012 locally and 2008 on my server and I can easily use spatial types in my database (as long as the DB is set to 2008 DB). I'm running .NET 4.5 and I'm running my apps in 32 bit mode.
+++ Rick ---
>The main problem seems to be related in the breaking changes between SQL Server 2008 and SQL Server 2012. As is, the spatial data type won't work. By default, a .NET application will try to execute the Microsoft.SqlServer.Types of version 10.0.0.0. When using SQL Server 2012, it has to use the 11.0.0.0 version. On a 64-bit server, this seems to be easily fixed by adjusting the connection string and simply adding the new .NET Framework 4.5 attribute to indicate to use SQL Server 2012. But, .NET Framework 4.5 only works on a 64-bit server.
>
>So, I tried all kind of approaches such as adding binding in the Web.Config file to force the 11.0.0.0 version but that doesn't compile. In order to compile, some have succeeded by removing the xmlns from the Configuration tag. When I do that, it doesn't compile. Right now, I have the xmlns pointing to 2.0 despite the fact that the application makes use of 3.5 and 4.0 .NET Framework functionalities.
>
>So, all this is a real mess. Simply because I am using spatial data type in my database, this is causing all those problems. All those extra steps are needed as there doesn't seem to be a default behavior anymore on that. So, for now, we are stuck in 2008 until we upgrade the Web server OS.