Why can't the PIC18 perform a divide operation accurately?
Some compilers for the PIC have an option to select either a 24-bit or 32-bit floating-point format.  You don't specify your compiler or its settings, but I would guess you're set to use less precise math.  Note, BTW, that floating-point division is apt to be much slower than multiplication.  Pre-computing the values of 1/60.0 and 1/3600.0 and multiplying by those is apt to be much faster than dividing by 60.0 or 3600.0.