Calling a custom profile field only it it exists

On an “author” page you can get a lot of the information you need with get_queried_object and additional information with get_user_meta. What you want (sounds like) should be in that second chunk of information.That is…

$author = $wp_query->get_queried_object();
$ameta = get_user_meta($author->ID);

var_dump($author,$ameta); // debugging

if(!empty($ameta['facebook'])) {
  var_dump($ameta['yim']); // debugging
}
// and so one for each contact method that you want to show

I am sure that is not how you want the information formatted but that should get you going.