Here is what I have now. I have set it up for every rising pulse and changed the math because when I incorporate this into my other code, waiting for four pulses delays alot of events.

Its still off with the output RPM numbers by the same percentage.
Code:
DEFINE OSC 20
Prefix          con     $FE           ' needed before each command
LcdCls          CON     $51           ' clear LCD (use PAUSE 5 after)
CursorPS        con     $45           'Cursor Position
Capture         VAR     PIR1.2		    ' CCP1 capture flag CCP1IF
Overflow        VAR     PIR1.0	    	' Timer1 overflow flag TMR1IF:
RPM             var     word
period          var     Word
TotalTime       var     word      'Holds seconds and tics 

LCD             VAR     PortC.6    'LCD output
Gate1           Var     PortC.1
Gate2           var     PortD.1
Gate3           var     PortD.2
Gate4           var     PortD.3
Gate5           var     PortD.6
Gate6           var     PortD.7
Gate7           var     PortD.5
Gate8           var     PortD.4
WOT             var     PortB.0
 
ADCON0 =0       'A/D Off
ADCON1.3=1      'All AN channels digital
ADCON1.2=1      '''
ADCON1.1=1      '''
ADCON1.0=1      '''
TRISE.0=1       'EO input
TRISE.1=1       'E1 input
CCP1CON = %00000101  ; Capture mode, every rising edge 0101 
T1CON.7=1     'enable timer  16 bit `   
T1CON.6=1     'Timer1 OSC
T1CON.5=1     '1:4 prescaler
T1CON.4=0     '1:4 prescaler
T1CON.3=0     'Timer1 OSC off
T1CON.2=0     'sychro clock
T1CON.1=0     'internal clock
T1CON.0=0     'stop timer

pause 10
SEROUT2 LCD,84, [Prefix, LcdCls]

Include "modedefs.bas"	' Mode definitions for Serout
SEROUT2 LCD,84, [Prefix,CursorPS,0,"RPM test"]
pause 500

TMR1H = 0    'Clear 8-bit register                              
TMR1L = 0    'Clear 8-bit register
capture = 0  'Clear Timer

Calc_RPM_Timer:
TMR1H = 0    'Clear 8-bit register                              
TMR1L = 0    'Clear 8-bit register
capture = 0  'Clear Timer

StartRPM:
  If Capture = 0 then
     Goto StartRPM
  endif

  T1CON.0=1
  Capture = 0 
      
CaptureLoop:
  If Capture = 0 then 
    Goto CaptureLoop
  endif
T1Con.0=0  
period.LowByte=CCPR1L
period.HighByte=CCPR1H

TMR1H = 0
TMR1L = 0
Capture = 0
Overflow = 0 

RPM = 10000
RPM = RPM * RPM ' 100,000,000
RPM = DIV32 period ' 100,000,000 / RevCount
RPM = RPM * 60 ' Per minute
RPM = DIV32 1600
RPM = (RPM*5)

SEROUT2 LCD,84, [Prefix,CursorPS,20,"RPM ",dec5 RPM]
goto Calc_RPM_Timer 
return