What exactly are you having a problem with? From what I can see of what you have pasted is that you never added open street map to the map control.
MyMap.Layers.Add(osmLayer); <-- missing
different spatial reference
To change the Spatialreference of a map, you have first to clear all the layers and to set the map extent to null before adding your new layers.
I also recommend you to instantiate a new layer each time you change the URL instead of reusing the same one.
Envelope env = new Envelope();
You have to set the map extent to null by code like: MyMap.Extent = null;
MyMap.Layers.Clear();
MyMap.Extent = null;
ArcGISTiledMapServiceLayer arcgisLayer = new ArcGISTiledMapServiceLayer();
Envelope env = new Envelope();