Here is the code that is not working.

Code:
'*********************************************************************************
@ ERRORLEVEL -306 ; this command prevents the compiler to give you a notice of   *
                  ; crossing page boundary - make sure bits are set              *
'********************************************************************************* 
 
  #CONFIG   ;  The PBP configuration for the PIC18F26K22 is:
;    CONFIG FOSC     = RCIO6	    ; External RC oscillator
     CONFIG FOSC     = HSHP	        ; HS oscillator (high power > 16 MHz)
     

;*---------------------------------4x PLL ENABLE--------------------------------------*|
;*  4X PLL Enable                                                                     *|
;*    CONFIG PLLCFG  = OFF	        ;Oscillator used directly                         *|
    CONFIG PLLCFG    = ON	        ;Oscillator multiplied by 4                       *|
;*------------------------------------------------------------------------------------*|
;
;  Primary clock enable bit
;    CONFIG PRICLKEN = OFF	        ;Primary clock can be disabled by software
    CONFIG PRICLKEN  = ON	        ;Primary clock enabled
;
;  Fail-Safe Clock Monitor Enable bit
    CONFIG FCMEN     = OFF	        ;Fail-Safe Clock Monitor disabled
;    CONFIG FCMEN    = ON	        ;Fail-Safe Clock Monitor enabled
;
;  Internal/External Oscillator Switchover bit
    CONFIG IESO      = OFF	        ;Oscillator Switchover mode disabled
;    CONFIG IESO     = ON	        ;Oscillator Switchover mode enabled
    
    CONFIG  BOREN    = SBORDIS      ; Brown-out Reset enabled in hardware only (SBOREN is disabled)
    
;*--------------------------------------------------------------------------------------------------------;|
    CONFIG  WDTEN    = ON           ; WDT is always enabled. SWDTEN bit has no effect                     ;|
    CONFIG  WDTPS    = 32768        ; 1:32768 ---> HERE enable the watchdog timer with a 1:32768 postscale;|
;*--------------------------------------------------------------------------------------------------------;|
    
    CONFIG  PWRTEN   = ON
    CONFIG  HFOFST   = ON           ; HFINTOSC output and ready status are not delayed by the oscillator stable status
    CONFIG  MCLRE    = EXTMCLR      ; MCLR pin enabled, RE3 input pin disabled
    CONFIG  LVP      = OFF          ; Single-Supply ICSP disabled
    CONFIG  XINST    = OFF          ; Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
    CONFIG  DEBUG    = OFF          ; Disabled

;*----------------------------------------------------------------------------------|
;*---------------Available configuration settings for PIC18F26K22-------------------|
;*----------------------------------------------------------------------------------|
;
;  Oscillator Selection bits
;    CONFIG FOSC = RC	    ;111X External RC oscillator, CLKOUT function on RA6
;    CONFIG FOSC = ECLPIO6  ;EC oscillator (low power, <500 kHz)
;    CONFIG FOSC = ECLP	    ;EC oscillator, CLKOUT function on OSC2 (low power, <500 kHz)
;    CONFIG FOSC = ECMPIO6  ;EC oscillator (medium power, 500 kHz-16 MHz)
;    CONFIG FOSC = ECMP	    ;EC oscillator, CLKOUT function on OSC2 (medium power, 500 kHz-16 MHz)
;    CONFIG FOSC = INTIO7   ;Internal oscillator block, CLKOUT function on OSC2
;    CONFIG FOSC = INTIO67  ;Internal oscillator block
;    CONFIG FOSC = RCIO6    ;External RC oscillator
;    CONFIG FOSC = RC	    ;External RC oscillator, CLKOUT function on OSC2
;    CONFIG FOSC = ECHPIO6  ;EC oscillator (high power, >16 MHz)
;    CONFIG FOSC = ECHP	    ;EC oscillator, CLKOUT function on OSC2 (high power, >16 MHz)
;    CONFIG FOSC = HSMP	    ;HS oscillator (medium power 4-16 MHz)
;    CONFIG FOSC = HSHP	    ;HS oscillator (high power > 16 MHz)
;    CONFIG FOSC = XT	    ;XT oscillator
;    CONFIG FOSC = LP	    ;LP oscillator
    
;*--------------------------------------------------------------------------------------------------------|
;*                                  | -------------------------- |                                        |
;*  -----------------------------   |  [PROTECTED OPTION FUSES]  |  ------------------------------------  |
;*                                  | -------------------------- |                                        |
;*--------------------------------------------------------------------------------------------------------|

    CONFIG  CP0 = OFF             ; Block 0 (000800-003FFFh) not code-protected
    CONFIG  CP1 = OFF             ; Block 1 (004000-007FFFh) not code-protected
    CONFIG  CP2 = OFF             ; Block 2 (008000-00BFFFh) not code-protected
    CONFIG  CP3 = OFF             ; Block 3 (00C000-00FFFFh) not code-protected
    CONFIG  CPB = OFF             ; Boot block (000000-0007FFh) not code-protected
    CONFIG  CPD = OFF             ; Data EEPROM not code-protected
    CONFIG  WRT0 = OFF            ; Block 0 (000800-003FFFh) not write-protected
    CONFIG  WRT1 = OFF            ; Block 1 (004000-007FFFh) not write-protected
    CONFIG  WRT2 = OFF            ; Block 2 (008000-00BFFFh) not write-protected
    CONFIG  WRT3 = OFF            ; Block 3 (00C000-00FFFFh) not write-protected
    CONFIG  WRTC = OFF            ; Configuration registers (300000-3000FFh) not write-protected
    CONFIG  WRTB = OFF            ; Boot Block (000000-0007FFh) not write-protected
    CONFIG  WRTD = OFF            ; Data EEPROM not write-protected
    CONFIG  EBTR0 = OFF           ; Block 0 (000800-003FFFh) not protected from table reads executed in other blocks
    CONFIG  EBTR1 = OFF           ; Block 1 (004000-007FFFh) not protected from table reads executed in other blocks
    CONFIG  EBTR2 = OFF           ; Block 2 (008000-00BFFFh) not protected from table reads executed in other blocks
    CONFIG  EBTR3 = OFF           ; Block 3 (00C000-00FFFFh) not protected from table reads executed in other blocks
    CONFIG  EBTRB = OFF           ; Boot Block (000000-0007FFh) not protected from table reads executed in other blocks

  #ENDCONFIG
  
;*---------------------------------------------------------------------------------------------------------|
;*---------------------------------------------------------------------------------------------------------|

define  OSC 64

        INCLUDE "modedefs.bas"
        INCLUDE "ALLDIGITAL.pbp"         ; Make all ports Digital
        INCLUDE "DT_INTS-18.bas"        ; Base Interrupt System
        INCLUDE "ReEnterPBP-18.bas"     ; Include if using PBP interrupts

OSCCON    = %01110000   ; 64Mhz
OSCTUNE.6 = 1           ; Enable 4x PLL

while ! osccon2.7 :WEND ; to make sure the pll has stabilised before you run any other code
'*-----------------------------------------------------------------------------|

'------------------------------------------------------------------------------|
'                            INITIALIZE RAM                                    |
'------------------------------------------------------------------------------|
initialize:
	CLEAR   	
'-------------------------------------------------------------------------------------------------------------------------------------------------------------

TRISA = %00000000   'use TRISA to specify which pin is (1 = input) and which (0 = output)  (ALL pins are output)
TRISB = %10000000   'use TRISB to specify which pin is (1 = input) and which (0 = output)  (RB7 PORTB.7 is the RX input pin of the EUART, the rest are output)
TRISC = %10000000   'use TRISC to specify which pin is (1 = input) and which (0 = output)  (RC7 PORTC.7 is the RX input pin of the EUART, the rest are output)
                    'in PORTC the RC3 attached is an LED. 

'------------------------------------------------------------------------|
'--------------------------- TRIS A B C ---------------------------------|
'------------------------------------------------------------------------|
' PORTA.7  PORTA.6  PORTA.5  PORTA.4  PORTA.3  PORTA.2  PORTA.1  PORTA.0 |
'  bit7     bit6     bit5     bit4     bit3     bit2     bit1     bit0   |
'   0        0        0        0        0        0        0        0     |
'------------------------------------------------------------------------|
'------------------------------------------------------------------------|
' PORTB.7  PORTB.6  PORTB.5  PORTB.4  PORTB.3  PORTB.2  PORTB.1  PORTB.0 |
'  bit7     bit6     bit5     bit4     bit3     bit2     bit1     bit0   |
'   1        0        0        0        0        0        0        0     |
'------------------------------------------------------------------------|
'------------------------------------------------------------------------|
' PORTC.7  PORTC.6  PORTC.5  PORTC.4  PORTC.3  PORTC.2  PORTC.1  PORTC.0 |
'  bit7     bit6     bit5     bit4     bit3     bit2     bit1     bit0   |
'   1        0        0        0        0        0        0        0     |
'------------------------------------------------------------------------|

'------------------------------------------------------------------------|
'----------------------- At start all PORTS LOW -------------------------|
'------------------------------------------------------------------------|
PORTA = 0            'make low all ports at A range                      |
PORTB = 0            'make low all ports at B range                      |
PORTC = 0            'make low all ports at C range                      |
PORTE = 0            'make low all ports at E range                      |
'------------------------------------------------------------------------|

'------------------------------------------------------------------------|
'-------------------------- COMPARATORS OFF -----------------------------|
'------------------------------------------------------------------------|
CM1CON0.7 = 0 'Disable comparator1                                       |
CM2CON0.7 = 0 'Disable comparator2                                       |
'------------------------------------------------------------------------|

'*-----------------------------------------------------------------------------|
'*                        |  --------------------- |                           |
'*----------------------- | EUART 1 Configuration  | --------------------------|
'*                        |  --------------------- |                           |
'*-----------------------------------------------------------------------------|

        'DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
        'DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
        'DEFINE HSER_CLROERR 1 ' Clear overflow automatically
        'DEFINE HSER_SPBRG 160 ' 38400 Baud @ 64MHz, -0,08%
        'SPBRGH = 1
        'BAUDCON.3 = 1         ' Enable 16 bit baudrate generator
        
        RCSTA = $90 ' Enable serial port & continuous receive
        TXSTA = $24 ' Enable transmit, BRGH = 1
        DEFINE HSER_CLROERR = 1 ' Clear overflow automatically
        SPBRG = 160 ' 38400 Baud @ 64MHz, -0,08%
        SPBRGH = 1
        BAUDCON.3 = 1         ' Enable 16 bit baudrate generator
        
'*-----------------------------------------------------------------------------|
'*                        |  --------------------- |                           |
'*----------------------- | EUART 2 Configuration  | --------------------------|
'*                        |  --------------------- |                           |
'*-----------------------------------------------------------------------------|
        
        'DEFINE HSER2_RCSTA 90h ' Enable serial port & continuous receive
        'DEFINE HSER2_TXSTA 24h ' Enable transmit, BRGH = 1
        'DEFINE HSER2_CLROERR 1 ' Clear overflow automatically
        'DEFINE HSER2_SPBRG 130 ' 9600 Baud @ 64MHz, -0,02%
        'SPBRGH2 = 6
        'BAUDCON2.3 = 1         ' Enable 16 bit baudrate generator

        RCSTA2 = $90 ' Enable serial port & continuous receive
        TXSTA2 = $24 ' Enable transmit, BRGH = 1
        DEFINE HSER_CLROERR2 1 ' Clear overflow automatically
        SPBRG2 = 130 ' 9600 Baud @ 64MHz, -0,02%
        SPBRGH2 = 6
        BAUDCON2.3 = 1         ' Enable 16 bit baudrate generator
        'BAUDCON2.5 = 1 
        
'------------------------------------------------------------------------------|
'-----------sent a sentence to gps, this is not working at the moment----------|
'------------------------------------------------------------------------------|
' When the GPS Module is POWERED ON, then the following sentenses are received. 

'          $PMTK011,MTKGPS*08
'          $PMTK010,001*2E
'          $PMTK010,002*2D   
Pause 800 
HSEROUT2 ["$PMTK251,38400*27",13,10]      ' 38400 boundrate, check MTK manual configuration
pause 800

SPBRG2 = 160 ' 38400 Baud @ 64MHz, -0,08%
SPBRGH2 = 1
Pause 500

;HSEROUT2 ["$PMTK314,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0*29",13,10]
HSEROUT2  ["$PMTK314,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28",13,10]
pause 100

HSEROUT2 ["$PMTK220,100*2F",13,10]        ' 100(millisecond)=0.1(sec)-->1/0.1= 10Hz
pause 100

'------------------------------------------------------------------------------|

ASM
INT_LIST  macro    ; IntSource,        Label,  Type, ResetFlag?
        INT_Handler   TMR0_INT,  _ToggleLED,   PBP,  yes
    endm
    INT_CREATE             ; Creates the interrupt processor
ENDASM
T0CON = %10010110             ; T0 = 16-bit, Prescaler 8
@   INT_ENABLE  TMR0_INT     ; enable Timer 0 interrupts

'*-----------------------------------------------------------------------------|
timeout     con     2000
LED         VAR     PORTC.4
PWRLED      var     PORTC.3 ' indicates that PIC is working on port C.4
TOGPS       var     PORTB.5 ' this is the pin serout to GPS rx port

hh          var     byte    'hours
mm          var     byte    'minutes
ss          var     byte    'seconds  
sss         var     word    'milisecs
degrees		VAR     BYTE	'latitude/longitude degrees
minutes		VAR		BYTE	'latitude/Longitude minutes
minutesD	VAR		word	'latitude/LONGITUDE DECIMAL MINUTES
dir       	VAR     BYTE   	' direction (latitude: 0 = N, 1 = S / longitude: 0 = E, 1 = W)
degrees2	VAR     BYTE	'latitude/longitude degrees
minutes2	VAR		BYTE	'latitude/Longitude minutes
minutesD2	VAR		word	'latitude/LONGITUDE DECIMAL MINUTES
dir2        var     byte    'direction (latitude: 0 = N, 1 = S / longitude: 0 = E, 1 = W)
SatNo   	VAR		BYTE	'number of satellites connected
day         var     byte    'day
month       var     byte    'month
year        var     byte    'year
SPEED       var     word    'speed with conversion ASCII to dec -48
Km          var     byte    'this is a letter K --> KM/H om the GPVTG sentence 
TS          var     byte[4] 'TOTAL SPEED. we create an array to combine each possible character for speed
decimal     var     byte
i           var     word    'we use this for Total speed point
FIX         var     byte    'fix sat V/A
Modefix     var     byte    'mode fix 1 or 2 or 3 depens

RED         var     PORTA.3
GREEN       var     PORTA.2
BLUE        VAR     PORTA.1
' -----------------------------------------------------------------------------|  
'                          [ LCD Initialization ]                              |
'------------------------------------------------------------------------------|
          ' FIRST TIME BOOTUP: We give plenty of time for tbe LCD '

pause 2000  
HSEROUT[$55]      ' uOLED Initialize this is the 'U' character of autoband rate to LCD
Hserin  [wait(6)]
hserout[$56,$01]  ' this is the Version info --> '01 10 17 28 28   -->> "(("
Hserin  [wait(1),wait(16),wait(23),wait(40),wait(40)]
HSEROUT [$45]    ' clear the LCD
Hserin  [wait(6)]
pause 500

hserout[$73,$00,$03,$11,$ff,$ff," Leonardo Bilalis",$00] 
Hserin  [wait(6)]           
hserout[$73,$02,$06,$10,$ff,"     Copyright 2018",$00]
Hserin  [wait(6)]
pause 3000

Hserout [$4F,01]   'Set transparent / opaque TEXT ($00 for transparent or $01 for opaque)
Hserin  [wait(6)]

HSEROUT [$45]    ' clear the LCD
Hserin  [wait(6)]

'-------------------------------------------------------------------------------------

high led

Main:

;serin2  gps_tx,84,timeout,lostcable,[wait("$GNRMC"),_          ;we wait for $GNRMC
HSERIN2[wait("$GPRMC"),_           ;we wait for $GPRMC
wait(","),dec2 hh,dec2 mm,dec2 ss,wait("."),dec3 sss,_          ;we wait for 090045.000 which is the time when we got the info
wait(","),fix,_                                                 ;we wait for A
wait(","),dec2 degrees,dec2 minutes,wait("."),dec4 minutesd,_   ;we wait for 3823.6645
wait(","),dir,_                                                 ;we wait for N/S ;wait(","),dec3 degrees2,dec2 minutes2,wait("."),dec4 minutesd2,_;we wait for 02353.3600
wait(","),dec3 degrees2,dec2 minutes2,wait("."),dec4 minutesd2,_;we wait for 02353.3600
wait(","),dir2,_                                                ;we wait for E/W
wait(","),wait(","),_                                               
wait(","),dec2 day,dec2 month,dec2 year,_                       ;we wait for 170518
wait(","),SKIP 3]  

if fix = "V" then gps

'serin2 gps_tx,84,timeout,lostcable,[wait("GNVTG"),_
HSERIN2[wait("GPVTG"),wait("N"),_
wait(","),TS[0],TS[1],TS[2],TS[3],TS[4],_
wait(","),SKIP 3]

for i = 1 to 3
    if TS[i]="." then decimal = i   'TOTAL SPEED. find which character is the decimal point 
    next i

select case decimal 'if the gps shows 1.45 it may be 145
                    'for the conversion ASCII to number we can use the -48
    case    1       'decimal position is x.xx
        SPEED = (10*(TS[0]-48))+(TS[2]-48)
    case    2       'decimal position is xx.xx
        SPEED = (100*(TS[0]-48))+(10*(TS[1]-48))+(TS[3]-48)
    case    3       'decimal position is xxx.xx
        SPEED = (1000*(TS[0]-48))+(100*(TS[1]-48))+(10*(TS[2]-48))
    end select     
    
gosub OVERSPEED

HSEROUT [$73,$05,$06,$11,$FF,$E0," SPEED",$00]
Hserin  [wait(6)]
HSEROUT [$73,$06,$05,$12,$6D,$BF,TS[0],TS[1],TS[2],TS[3],$00]
Hserin  [wait(6)]
HSEROUT [$73,$06,$06,$12,$FF,$E0,"Km/h",$00]
Hserin  [wait(6)]

goto main

'-----------------------------------------------------------------------------/
'                              [ SUB ROUTINES ]                              /
'---------------------------------------------------------------------------/

OVERSPEED: 

if SPEED > 1000 then     ' 100Km/h
    high BLUE
    low  GREEN
    low  RED    
else
    LOW BLUE
    
if SPEED > 500 then     ' 50Km/h
    high GREEN
    low  RED    
else
    LOW GREEN
    
if SPEED > 100  then    ' 10Km/h
    high RED
else
    LOW RED

endif
    endif
        endif
    return

GPS: 
HSEROUT [$45]  ' clears the LCD 
Hserin  [wait(6)]

HSEROUT [$73,$00,$03,$11,$6D,$BF,"   Waiting for GPS",$00]
Hserin  [wait(6)]
HSEROUT [$73,$04,$07,$12,$F8,$00,"NOT FIXED",$00]
Hserin  [wait(6)]
pause 3000

HSEROUT [$45]  ' clears the LCD 
Hserin  [wait(6)]

goto main      'returns to notfix  
'---[INT - interrupt handler]---------------------------------------------------

ToggleLED:
     TOGGLE pwrled
@ INT_RETURN