Firstly you don't change the route names, they should be app relative.
Secondly, you'll probably experience problems from web.config inheritance (ie, your web.config in the mvc application is inheriting everything from the web.config in the root).
You can stop this inheritance but you'll need to modify the root applications web.config to include a location tag around everything:
<configuration>
<configSections>
... all your custom config sections here (if any) ...
</configSections>
<location path="." inheritInChildApplications="false">
... all your config stuff here (ie, system.web, connectionStrings) ...
</location>
</configuration>
What this does is says, apply these settings only to the path '.', the period will stand for the current location, then the inheritInChildApplications says 'don't inherit these settings in child applications'.
You can even put things outside of the location tag that you DO want to share to child applications.
Edit: note this may not fix your problems (or at least not all of them), some may be because you've made assumptions that the application will run in the root (mainly regarding paths).