As Martin says, lack of proper terminators can certainly be a problem. However, R-C oscillators are generally not accurate enough for CAN. Usually you need less than 1% mismatch, which would imply .5% accuracy at each end, which the internal oscilators of these PICs isn't going to give you. Try with a crystal driving each PIC and see if you still have problems.
By the way, I have used the 18F25K80 and MCP2551 in numerous designs and never had a problem. However, I used a crystal each time.
Another problem is now apparent, which is that you may not have a common ground between the two nodes. Of course this is important. The CAN lines as driven by the MCP2551 are differential, but are still directly connected. As such, they have a limited common mode range. Both lines float at about 2.5 V when in the passive state. In the dominant state, each line is pulled about 900 mV from the idle level. The MCP2551 can tolerate a reasonable amount of common mode offset on receiving, but of course it needs the lines to be fairly close to the nominal values when transmitting. Such CAN systems require a ground connection. In this case, CAN is a three-wire bus: CANH, CANL, and ground.
What is probably happening is that the common mode offset is within the range of the receiving node to receive. This is why it gets the frame correctly. However, due to the common mode offset it can't successfully put the ACK bit on the bus in such a way that the transmitter sees it. The transmitter therefore thinks there is a error and retries.