Hi Matteo,
I see there are still some issues present...the problem is that I cannot guarantee that the problem doesn´t come from hardware while you´re using your own CAN transceivers. So, we need to pinpoint the problem and exclude hardware or software cause.
So, regarding this 99 coming from "CAN_NODE_GetStatus" function...that would me that CAN controller went into bus-off state while it had to many unsuccessful transmit attempts.To verify this can you please check what is the value of NECNT register of the node that is trying to send the message. This way we can verify that the transmitting node is doing it´s job but the receiver part is not acknowledging messages.What´s also interesting is that you got also bits TXOK and RXOK set meaning that one transmission was successful. Additionally, you get "stuff error" that more than 5 equal bits where detected in a sequence in LEC bitfield. CAN transceivers should take care of that so I´m currently not understanding what´s causing exactly the issue for you.
As you said that "BUSHEAVY" error can occur because of multiple reasons, so I guess you should double check the things that are mentioned above (are you sure you use the same baudrate in the PC software as on your receiver board; can you double check that CAN transceiver is properly connected, and so on).
After that I have a suggestion. You should first try to run the loopback example once again...keep everything else the same but use loopback mode...then take a screenshot of your node´s registers (both of them, TX and RX), together with the accompanying MO registers BEFORE and AFTER transmit function has been used. Verify that CAN transmission was successful. Then connect everything as you need for you project and try again....compare the status of the register before transmit and after transmit occurs with the shots you took before in loopback mode. Take special care with NSR and MOSTAT register...the issue should be visible there.
Let me know how it went and best regards,
Deni