I just recreated what you are trying to do, however I can't show you as its on a local version.
This is the code I used:
function sams_tagloop($tag = 'TAG'){
thematic_postheader();
the_content();
query_posts("tag=" . $tag);
if (have_posts()) : while (have_posts()) : the_post(); ?>
<div id="post-<?php the_ID() ?>" class="<?php thematic_post_class() ?>">
<?php thematic_postheader();
if ($counter == 1 && has_post_thumbnail()){
the_post_thumbnail('homepage-thumbnail');
} ?>
<div class="entry-content">
<?php the_excerpt();?>
<a href="<?php the_permalink(); ?>" class="more"><?php echo more_text() ?></a>
<?php $counter++; ?>
</div>
</div><!-- post -->
<?php endwhile; else:?>
<h2>Arg!</h2>
<p>There are no posts to show!</p>
<?php endif;
wp_reset_query();
}
You will notice I use the Thematic theme, however if you remove the thematic functions then it will still work. (This code is in the themes function.php file.
That is called from a template file with the function sams_tagloop('TAG');
Alternatively, you can use a plugin, e.g. http://wordpress.org/extend/plugins/posts-by-tag/
That uses a short code [posts-by-tag tags = "tag1, tag2"]