Hi,
Is the minimum duty cycle 20 or 25%, you claim both....
If the minimum dutycycle is 25% you have 192 dutycycle values to be "spread across" 25 degrees, each degree represents a change in dutycycle of 192/25=7.68
Code:
IF HighTemp > 100 THEN
  Duty = 64 + ((HighTemp - 100) */ 1958)         ' If HighTemp is 125 duty will be 64+(25*1958/256)=255. If HighTemp is 110 Duty will be 64+(10*1958/256)=140
ELSE
  Duty = 64   ' 25% Dutycycle
ENDIF
If Duty > 255 THEN DUTY = 255
To get more resolution you need to increase the resolution of the input variable.

/Henrik.