You should make a diagram to compare all logic input and output voltage thresholds of the logic families you use, such as in:
https://duckduckgo.com/?q=logic+family+threshold+and+voltage+margin+compatibility&iar=images&t=h_I am surprised about the latchup of your PIC. Normally "modern" logic is pretty immune to latchup. There is even an application note for pic (16F84) in which mains voltage is directly going to an input pin to use as a zero crossing detection. That AN claims that input current to the ESD clamp diodes can be up to 4mA (from memory, verify this) without damage. But this does imply that those 4mA have somewhere to go. If the complete supply current of your circuit is less than that, then the supply voltage will rise. And of course latchup problems get worse with bad decoupling, lack of a good GND plane etc...
I guess (<- with emphasis) that going from PIC to PMOS works without extra circuitry. From PMOS to PIC, a simple voltage divider may be enough. Something like 2k2 on PMOS output and then 10k go GND. I think those old PMOS / CMOS IC's can output only a very small current, like 1mA or maybe even less. You should really look up those things in the datasheet of your device.
Another option is to connect the output of your PMOS to an N-channel fet, and the drain of the fet to the PIC input, and with internal pullup enabled. This does invert the signal, so you have to adjust the firmware for that.
Using real logic converter IC's is a better option, especially for "high speed" communication.
Yet another option is to simply run your PIC from the 6V supply, but with a silicon diode in series, to drop it's supply voltage to around 5V4.
The good news is that level shifters are not that complex, two FETs and a resistor and you're good to go.
Or turn that around: 1 fet and 2 resistors. The origin of that circuit is an AN from philips and for use with I2C. Because I2C is inherently an open drain bus, it's a near perfect circuit for that. For fast logic, the open drain with passive pullups may be too slow.