It's not a calibration problem, it's the mapping database.
I don't have factory navigation but have had Garmin units for years. They get their data from NAVTEQ. When I upgraded my mapping software from v4 to v7, my street also shifted. (I can toggle between the two versions on my PC and my whole neighborhood shifts from correct in the older version to wrong in the newer version). Something in the reference points they use to pin the map to the coordinates. I called Garmin about it and was referred to NAVTEQ, but as far as I know nothing has been done. Also, when I look at my house on zillow.com, it is not my house, it's about a block away, so they are getting their data from a similar source. I suspect that GM also uses NAVTEQ or a similar third party for the map data and it's not always correct.
One of the issues is that when the data providers get an update for a new road, they often only get a street name, coordinates for the street and an address range (for example: Main Street - 2001-2500). They then have to extimate where an address falls on the street based on where it falls in the range. This typcially will happen for secondary roads. It will stay this way until the data can be validated and someone updates the locations of each address.
When I first moved in, my house would show up in the middle of the road on Map Quest even though I live at the end of the road. They have made some updates, but now when I am in my driveway it says that i am off the road and shows me a few hundred feet past the end of the road (on my Nav system).