I saw this bug too. I changed the following code in order to send the state abbreviations instead of letting Paypal truncate the full state name to two letters (i.e "Georgia" becomes "Ge"). There may be a better way but this seems to work perfectly...
in catalog/includes/modules/payment/paypal_payflow_link.php near line 100 change the following
. "&BILLTOSTATE=" . $order->customer['state']
to
//MODIFIED TO SEND STATE ABBREVIATION TO PAYPAL
//. "&BILLTOSTATE=" . $order->customer['state'] ORIGINAL CODE
. "&BILLTOSTATE=" . tep_get_zone_code($order->customer['country']['id'], $order->customer['zone_id'], $order->customer['zone_name'])
//MODIFIED TO SEND STATE ABBREVIATION TO PAYPAL
And
. "&SHIPTOSTATE=" . $order->delivery['state']
to
//MODIFIED TO SEND STATE ABBREVIATION TO PAYPAL
//. "&SHIPTOSTATE=" . $order->delivery['state'] ORIGINAL CODE
. "&SHIPTOSTATE=" . tep_get_zone_code($order->delivery['country']['id'], $order->delivery['zone_id'], $order->delivery['zone_name'])
//MODIFIED TO SEND STATE ABBREVIATION TO PAYPAL
Also, I installed the DHTML State Selection for 2.3.1 to make sure customers pick/spell States correctly. You can find it here http://addons.oscommerce.com/info/8028