CANBUS multi-node communication fails when electing bus master
Yeah it is possible that you get all manner of strange things if you send the same CAN identifier with different data, at the same time. This could result in error frames, because only the identifier part of the frame participates in bus arbitration.
This could be the reason why some nodes don't recognize the one with highest priority, in case they attempt to send at the same time. Or it could simply be that their start-up time is very different.
And this is also the main reason why networks like CANopen use &quot;node id&quot; as an offset to the identifier of data packages. In your case, this should probably have been implemented so that CAN id 0 to 127 are reserved for this &quot;challenge the current master&quot; package, with 0 being the highest priority:

Each time a node wakes up, it sends out a message claiming to be the master. If nobody challenges it, it is now the master.
Each time a node sees another node with higher priority making that claim, it takes note of who is now the master.
Each time a node is the master and sees someone else with lower priority claiming to be master, it responds by sending out its own message once again.