When I need to display a thumbnail that is attached to a post gallery, I use a custom function in my functions.php. It might be over kill for your needs, but it should cover everything.
In this example, I retrieve all the images in a post's gallery, and then display each image in a list item. The list contains the thumbnail image wrapped in an anchor that links to the post the image came from. The output string can easily be customized to your needs.
function get_gallery_image_thumb_list($size){
global $post;
$args = array(
'numberposts' => null,
'post_parent' => $post->ID,
'post_type' => 'attachment',
'nopaging' => false,
'post_mime_type' => 'image',
'order' => 'ASC',
'orderby' => 'menu_order ID',
'post_status' => 'any'
);
$attachments =& get_children($args);
if ($attachments) {
foreach($attachments as $attachment) {
foreach($attachment as $attachment_key => $attachment_value) {
$imageID = $attachment->ID;
$imageTitle = $attachment->post_title;
$imageCaption = $attachment->post_excerpt;
$imageDescription = $attachment->post_content;
$imageAlt = get_post_meta($imageID, '_wp_attachment_image_alt', true);
$imageArray = wp_get_attachment_image_src($attachment_value, $size, false);
$imageURI = $imageArray[0]; // 0 is the URI
$imageWidth = $imageArray[1]; // 1 is the width
$imageHeight = $imageArray[2]; // 2 is the height
// Build the <img> string
$ImgString = '<li><a href="' . get_permalink() . '" title="' . the_title("", "", false) . '"><img src="' . $imageURI . '" width="' . $imageWidth . '" height="' . $imageHeight . '" alt="' . $imageAlt . '" title="' . $imageTitle . '" /></a></li>';
// Print the image
echo $ImgString;
break;
}
}
}
unset($args);}
Then call the function and pass in the size of image you want returned (thumbnail, medium, large or full) like so:
get_gallery_image_thumb_list("thumbnail");
This will need to be called in The Loop or a custom loop.