Satellites are part of the problem. many GPSs will tell you how inaccurate at any given time, so at times they will be off by 150ft.. 10 years ago 150 was the average reading
but the maps are off at times... I have a lake up north and I drive my boat around a point , the map shows that I am 100ft on shore all the time. some times the Gps was showing it was correct within 3ft, I checked the map on the computer and the map was wrong, after checking I found that maps are off, they do updated the at times, but there is little you can do about it
the garmin topo maps can be changed and reloaded onto the GPS and I have been doing that