oh, i may have answered my own question now.....

Since working with 8bit bytes etc, maybe is should just isolate my variables?
something like

LO_nibble = PortB & %00001111, for READING LSB data into LO_nibble
or,
HI_nibble = PortB & %11110000, for READING MSB data into HI_nibble


and then

PortB = LO_nibble & %00001111, for WRITING LSB data to PortB (output pins)
or,
PortB = LO_nibble & %11110000, for WRITING MSB data to PortB (output pins)


Sorry, i haven't wired this idea up yet, so i can't prove my theory until i put something together on the bench.

Regards,
Marty.