drupal_get_messages always blank
By the time your page template is built, drupal_get_messages() has already been called (by way of theme_status_message(), which is called from template_preprocess_page()). 

Since drupal_get_messages() clears the message cache unless the second argument to the function is explicitly set to FALSE, and theme_status_message() doesn't provide that second argument, the next time it's called the $_SESSION['messages'] var has already been cleared.

You already have access to $messages in your page template file, but if you're looking to get hold of each individual message you'll probably have to do this in a preprocess function:

function MYTHEME_preprocess_page(&amp;$vars){ 
  $messages = drupal_get_messages(NULL, TRUE);
  $vars['message_list'] = $messages;
}