How can you display all sibling categories to a post?

Yes, you can. The Function to help you out here is get_term(). The return of this function delivers you a value for parent. Using this ID, you can get the Parent Taxonomy (as long as it is hierarchical like the categories).

Attention

To get this function to work correctly, you have to select JUST the bottom category for your post, for example “South Sudan”. If you also select parent Categories, the function has no way of knowing which one to use (or just with a lot more processing).

The same problem arrises if you use multiple categories – either you get the output of multiple breadcrumbs, or just one, which could be the false one.

The script for a single bottom category could look like that, and should give you the idea, what needs to be done:

UPDATE

I enhanced the script with a function to ensure multi-category compatibility.
It now searches through all the set categories, finds the one with the most category-ancestors, and prints out a breadcrumb with all the categorylinks.

$seperator=" | "; // Change to whatever you need
$categories = get_the_category( get_the_ID() ); // get the categories for your post

// check if categories are set
if ( is_array( $categories ) && count( $categories ) > 0 ) {

    $mostancestors = 0; //controlvariable
    $foundcategory; //save the category

    // Loop through the categories
    foreach( $categories as $thiscategory ) {

        //check how many ancestors the current category has
        $thisancestors = howManyAncestors( $thiscategory );
        // if more than the previous record holder
        if ( $thisancestors > $mostancestors ) {
            $mostancestors = $thisancestors; //increase the controlvariable to the Amount calculated
            $foundcategory = $thiscategory; //Set the found category to the one with more ancestors
        }
    }

    // get the parent of the found category
    $parent = get_term( $foundcategory->parent, 'category' );

    // loop to the next parent as long as it is different than the current one and exists
    while ( $parent->term_id != $foundcategory->term_id && !is_wp_error( $parent ) && $parent->term_id != 0 ) {

        // Add the Link for each parent in front of the existing Links
        $categorylinks="<a href="" . get_category_link( $parent->term_id ) . '" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $parent->name ) ) . '">' . $parent->name . '</a>' . $seperator . $categorylinks;
        // get the next parent
        $parent = get_term( $parent->parent, 'category' );

    }

    // the actual category that is set, without the final Seperator
    $categorylinks.= '<a href="' . get_category_link( $foundcategory->term_id ) . '" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $foundcategory->name ) ) . '">' . $foundcategory->name . '</a>';

    echo $categorylinks;

}

function howManyAncestors( $term ) {
    $counter = 0;
    $parent = get_term( $term->parent, 'category' );
    while ( $parent->term_id != $thiscategory->term_id && !is_wp_error( $parent ) && $parent->term_id != 0 ) {
        $counter++;
        $parent = get_term( $parent->parent, 'category' );
    }
    return $counter;
}