Thumbnails different sizes

You’re over-complicating your thumbnail code; all you need is this:

if ( has_post_thumbnail () ) {
  the_post_thumnail( 'preview-thumb' );
} else { ....

The problem with your version is that get_post_thumbnail_id() doesn’t accept a size parameter, so that information gets thrown away. Luckily, the_post_thumbnail() does everything you need without having to fetch the url and build an html string by hand.