Child and Parent Pages list of sub pages

You need to work out what page level you are on first, so that you know the correct ID to pass to the child_of argument of wp_list_pages. Give this a try:

global $post;
$page_level = 0;
$post_parent = null;

// Work out what page level we're on
if($post->post_parent > 0) {
    $post_parent = get_post($post->post_parent);
    $page_level = ($post_parent->post_parent == 0 ? 1 : 2);
}

// Updated with page IDs
echo 'Current page: '.$post->ID.'<br />';
echo 'Current parent: '.$post->post_parent.'<br />';
echo 'Current level'.$page_level.'<br />';
echo 'Loading pages from '.($page_level == 2 ? $post->post_parent : $post->ID).'<br />';

$subpages = wp_list_pages(array(
    'echo'     =>0,
    'title_li' =>'',
    'depth'    =>1,
    'child_of' => ($page_level == 2 ? $post->post_parent : $post->ID)
));


if ( !empty($subpages) ) {
?>
<div class="services-sub-menu"> 
<?php
    if ( $post->post_parent != 0 ) {
        echo '<p class="parent-link"><a href="'. get_permalink($post->post_parent) .'"><em>'. __('Back to') .' '. get_the_title($post->post_parent) .'</em></a><p>';
    }
    echo '<ul>';
    echo $subpages;
    echo '</ul>';

    ?>

</div>

<?php
} else {

}