The problem was in the color space of the tiff image. ffmpeg copies the color space from the mpeg file, which was YUV encoded. exif data of the tiff file showed it was 'YCbCr', which is YUV.
The resulting tiff file could be viewed by some applications, but other applications (notably, photoshop) reported it broken. Not sure if that is a bug in ffmpeg. So I piped the result through imagemagick without any transformation, which seemed to repair the file.
However, imagemagick was assuming it was RGB, and set the exif data to RGB without actually changing the image data. Thats were the hue shift happens. Again, not sure if that is a bug in imagemagick.
jpeg had neither problems.
One proper solution is to specify, in the ffmpeg command, the pix_fmt to use. See https://ffmpeg.org/ffmpeg.html#Advanced-Video-options
So this did it:
ffmpeg -ss 14 -i '../test/test-in.mpg' -vframes 1 -aspect 445:326 -pix_fmt rgb24 -vf "crop=22/23*in_w:22/23*in_h,yadif,scale=720:527" '../unit-test/out.tiff'