I think there is a bug in the static function Proj4Projection::GetGoogleMapParametersString() which should return the map projection string used by Google Map.
I tested what you are claiming by projecting a shapefile in WGS84 to our Google Map projection and to your Google Map projection. You can see in the screen shot below that the shapefile in our projection (in red) is correct while the shapefile in your projection (in green) is incorrect. So I think that we have the correct projection string for Google Map.
winformsMap1.MapUnit = GeographyUnit.Meter; winformsMap1.CurrentExtent = new RectangleShape(-14180662, 5547256, -7832569, 1777465); winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.FromArgb(255, 198, 255, 255));
// Create your overlay and make sure to register and insert your own key. GoogleMapsOverlay googleOverlay = new GoogleMapsOverlay(); //(@"Insert your key here!", @"C:\GoogleCache"); winformsMap1.Overlays.Add(googleOverlay);
// This sets the zoom levels to map to Googles. We next make sure we snap to the zoomlevels winformsMap1.ZoomLevelSet = new GoogleMapZoomLevelSet();