I've had this exact issue since roughly a week after I got my 3D. The first week my location was fine. I also have an Airave. i thought that might be it when it first started so I disconnected my home network entirely. It didn't fix the issue. No matter if I disconnect my home network as I did in my test or if I'm only on 3G at home (bypassing my wifi) it still shows the wrong location.
In my case, it shows a city that is over an hour away from me. I suspect it still has to do something with home networks even though I've tested with the network completely shutdown. Not sure how exactly, but it can't be a coincidence that so many of us have this issue only at home.
Oh, and removing/reapplying the widget did not help. Also of note is that is you go to Maps your GPS will show you the other city instead of yours. So, it's not a widget issue, it's something messing with the GPS. It will occasionally switch back to my city but eventually it will change back to the other city over an hour away.