Here is one way to get the terms in order in an array.
$terms = get_the_terms($post->ID,'category');
$sorted_terms = array();
$find_parent = 0;
for( $i = 0; $i < sizeof($terms); ++$i) {
foreach ($terms as $term) {
if ($term->parent == $find_parent) {
$find_parent = $term->term_id;
$sorted_terms[] = $term;
}
}
}
The sorted_terms array now contains the terms in order. $sorted_terms[0] will contain the country term, $sorted_terms[1] will contain the state term, and $sorted_terms[2] will contain the city term.