I think you need to clear the timer sooner. (Immediately after capture).
The program goes through the whole conversion to RPM with multiplications and DIV32's before clearing the timer.
The 18F's multiply faster because they have a hardware multiplier.
So it clears the timer quicker and ends up with bigger numbers.
The 4620 numbers are closer to reality, but it's still wrong.
Clear the timer immediately after a capture and both chips should read the same numbers (or really close).
hth,
Bookmarks