Hi,
I have not looked closely at your code yet and I don't know if this will make any difference but I did react to the following:
The Weak Pullup on GPIO.5 (DataOut) pin is enabled and the data is transmitted and received True".
Please note that the WPU is turned off when pin is configures as an output. See section 4.2.2 in the datasheet.

Apart from that, are both PICs on the same PCB, sharing the same power supply and, more importantly, the same ground?