If I assign a featured image to any post in question then it does show
the correct image. I just don’t understand why every post after the
first twelve are using another posts featured image.
I think the problem is that you do not reset $image
if the current post doesn’t have a featured thumbnail.
You should add for example:
<?php
if (has_post_thumbnail( $post->ID ) ):
$image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' ); ?>
else:
$image = array( 'http://example.com/default.jpg' );
endif;
?>
since you are using $image[0]
in your code.