Excuse my ignorance, but what's the alternative to setting bits without using high/low?
Is it preferable just to use "PORTB.1 = 1" etc?
yes or EVEN BETTER LATB.1 = 1 if chip has LAT regs

high/low always resets TRIS bit wether it needs to or not (ie already set to output)
which takes a

BANKSEL TRISX
BCF TRISX,PIN
BANKSEL PORTX
BSF/BCF PORTX,PIN
BANKSEL 0

HEAPS OF STUFF