User Meta Value not echoing despite Var_Dump Showing correct string

The $havemeta variable isn’t defined inside your shopping_location_text() function, so it isn’t available for use there.

For a quick fix (or for testing/toying) you can move your code inside the function, like this:

add_action( 'woocommerce_before_main_content', 'shopping_location_text', 10 );
function shopping_location_text() {
    global $current_user;
    get_currentuserinfo(); // wordpress global variable to fetch logged in user info
    $userID = $current_user->ID; // logged in user's ID
    $havemeta = get_user_meta($userID, 'location_select', true); // stores the value of logged in user's meta data for 'location_select'.
    //var_dump($havemeta);
    if( is_shop() ) {
        print '<p class="shopping-location-text">YOUR ARE CURRENTLY SHOPPING IN <span style="FONT-WEIGHT: 700;COLOR: #fa4516;">' . $havemeta . '</span></p>';
    }
}