Try resetting network settings, it's worth a shot.
dont laugh, this happened to a friend.. wrap the phone in a towel and throw it in the freezer turned off for 15-20 min..
google "3G/S not detecting wifi" and you should see this trick mentioned a number of times.