Вы используете неправильную переменную для высоты изображения.
imagecopyresized($targetImage,$sourceImage,0,0,0,0,$thumbWidth,$thumbWidth,imagesx($sourceImage),imagesy($sourceImage));
Должно быть:
imagecopyresized($targetImage,$sourceImage,0,0,0,0,$thumbWidth,$thumbHeight,imagesx($sourceImage),imagesy($sourceImage));
Это должно улучшить качество изображения, но вы должны использовать imagecopyresampled для изменения размера и использовать параметр качества при использовании функции imagejpeg () при сохранении на диск.