CAN BUS Shield Error clearing?

I have a currently functioning CAN BUS Shield on an Arduino Uno that is sending CAN messages to a CH4100 EV Battery Charger. I’m using the Seeed library (send and receive) without interrupts. As long as I power my Charger first and then power up the Arduino everything works fine. If I power them up at the same time (as I’d like to be able to do), the CAN_BUS Shield doesn’t communicate with my charger. I assume the mcp2515 is in an error state for some reason. I’ve tried to re-initialize the CAN which should send an mcp2515-reset but that didn’t work. What am I missing? How do I make the Shield work when powered up first/same time? I’ve updated my code for the recent library update, but my pre-update code is here (without the small library updates).

Here’s the current version of my code but it’s a bit messier because I’ve also added SIM7000 code.