Ohne das genauer zu Prüfen ist mir in der
Unit GraphicColor die Verwendung der Funktion "MulDiv16" aufgefallen.
Scheinbar wird diese an vielen Stellen verwendet um einen 16Bit-Wert gerundet als 8Bit-Wert abzubilden.
z.B. MulDiv16(Value, 255, 65535).
Die TIFF-Palette nutzt 16-Bit für jeweils Rot, Grün und Blau.
Vermulich wurden beim Speichern der Datei die jeweiligen Werte von
RGB jeweils mit 256 multipliziert.
clAqua = 16776960 = $FF $FF $00 wurde als $FF00 $FF00 $0000 gespeichert.
($FF00 * 255) div 65535 = $FE
Eventuell genügt es die Funktion TColorManager.ComponentScaleConvert anzupassen:
Result := Value shr 8;