Hi,
1) Can't help without seeing the values.
2) Not sure I understand what the problem is.... If you want a certain maximum dutycycle then simply rescale the values before storing them in the lookuptable (change the formula to produce a table with lower values). If you want to rescale at runtime then you need to perform the math in the PIC. Retrieve the "original" value, rescale, and output.

/Henrik.