You've used 'con' instead of 'var' in a couple of your pin defines...

SO con PORTB.2 'Serial Output
SI con PORTB.5 'Serial Input

and you've duplicated the use of SI.

SI con PORTB.5 'Serial Input
SI VAR PORTB.6 'EEProm SI Line

Make your mind up about defining your Serial Comms pins...

RB2 ----- rs232 pin 11 (T1 IN) - Input or Output?
SO con PORTB.2 'Serial Output - here it looks like an Output...
TRISB = %00000100 - but here you've defined it as an input...

same for the other pin at RB5...

Hell, I'd hate to go out for dinner with you... "I'll have Lobster... nope I'll have the Steak... nope I'll have the Lobster..."

Look, you've chosen the pins to coincide with the Hardware USART (which is a good move as it gives you both Hardware and Serial software options to play with later in your code), so set the definitions accordingly (which you HAVE done CORRECTLY with TRISB)... and lose the confusing comments... and lose confusing definitions. What is 'SO'? Serial Output? Wrong pin if you're planning to use the USART Hardware and wrong for your setting of TRISB.2.

SerialReceive var PortB.2 ' RS232 Input
SerialTransmit var PortB.5 ' RS232 Output

Unless you're Forrest Gump it'll confuse the hell out of you otherwise.

Bet you now regret asking me for my comments...

*smiles*

Finally, don't forget RA5 is an INPUT ONLY pin if you're planning to use it for I/O and set TRISA appropriately.