Rather than three separate fields, how about a one-liner? The links still point to the right places.

--- geouser.module      (revision 96)
+++ geouser.module      (working copy)
@@ -95,27 +95,15 @@
 
           if($location){
 
-            $account->content['geouser']['city'] = array(
-                  '#type' => 'user_profile_item',
-                  '#title' => t('City'),
-                  '#value' => l($cityName,  'geouser', array('query' => array('Country' => $countryName, 'Region' => $regionName, 'City' => $cityName))),
-                  '#weight' => 7,
-
+            $account->content['geouser']['location'] = array(
+              '#type' => 'user_profile_item',
+              '#title' => t('Location'),
+              '#value' => l($cityName,  'geouser', array('query' => array('Country' => $countryName, 'Region' => $regionName, 'City' => $cityName))) .', '.
+                l($regionName, 'geouser', array('query' => array('Country' => $countryName, 'Region' => $regionName))) .', '.
+                l($countryName, 'geouser', array('query' => array('Country' => $countryName))),
+              '#weight' => 9
             );
-            $account->content['geouser']['region'] = array(
-                  '#title' => t('Region'),
-                  '#value' =>l($regionName, 'geouser', array('query' => array('Country' => $countryName, 'Region' => $regionName))),
-                  '#weight' => 8,
-                  '#type' => 'user_profile_item',
-            );
-            $account->content['geouser']['country'] = array(
-                  '#title' => t('Country'),
-                  '#value' => l($countryName, 'geouser', array('query' => array('Country' => $countryName))),
-                  '#weight' => 9,
-                  '#type' => 'user_profile_item',
 
-            );
-
             if(variable_get('map_type', 0) == 1){
               //Display Yahoo Map
               $appid = variable_get('geouser_ymap_appid','YahooDemo');