I had the same issue. Make sure it says ATT in carrier when you log into google voice (the website). If it doesn't, try to redetect it. Mine still showed Sprint for 48 hours before it detected I was actually on ATT.
Also entered the codes as mentioned on this site:
The important part to save you a click through:
"Second, open up your phone’s dialer and dial the following, replacing 1234567890 with your new Google Voice phone number…
*61*1234567890# (then hit send)
*62*1234567890# (then hit send)
*67*1234567890# (then hit send)
You should see a message appear on your phone after each time you press send. This will set up your AT&T account to take all calls when the phone is busy, when you decline a call, or when your phone is turned off or out of range and forward the call to your Google Voice number."
After doing the above I was able to change Carrier in settings to Google Voice without any problem.