Thank you all for your help.
I've decided to go along with a very simple protocol. This includes dumping the send when sensing crosstalk, waiting a random amount of time, and then re-sending. I thought of doing this with an interrupt - can someone please explain how this can be implemented? (i.e. I need to set off the interrupt only for the pin rising during input, not output, and it should sense this in the delay between transmissions).
EDIT: just remembered the RB4-7 pins. From what I understand, they only set off the interrupt when they are in input mode.. Does this mean that they have to always be on input, or will the interrupt still function if I switch between output and input?