Simple CAN bus design, communication issues
If I understand correctly you can receive CAN messages, but not send... That sounds like a transceiver problem. I realize you have replaced it already, but I would try replacing the MCP2551 with an MCP2561 or similar. They seem to be a bit more resistant to damage from ESD/handling.

I would also consider adding a CAN bus protection diode to the board.