ROM-Reader for Super Nintendo / Super Famicom Game Cartridges

Seemingly random errors like this are often caused by either dirty/corroded cartridge pins, a bad solder joint, a shorted address or data line, too tight timings or a bug in the code.
So there might either be a hardware problem with your PCB or you encountered a bug in the code that only gets triggered in edge cases and your PCB made this bug more "visible".

Hardware:
So first I would make sure the cartridge's contacts look like new and if not clean them.
Then I would check with a multimeter that none of the GB slot pins are shorted to GND which can happen if the solder mask got misaligned in the factory by a tiny bit.
Then I would check that none of the GB slot pins are shorted to another GB slot pin.
Then I would measure the resistance of the power switch, I had slide switches with several Ohms resistance in the past that produced a similar error, although only with the 3.3V systems.
And finally, I would use a multimeter to measure each address/data pin's resistance from the Arduino to the GB slot to check for a cold solder joint. I had several of those in the past, they look like a good joint but if you measure the resistance it's higher than on the other lines.

Code:
In the code I would try if enabling/disabling the internal pullups for the data line in setup_GB() and in dataIn_GB() makes any difference.
Then in readByte_GB() I would double the amount of "nop\n\t" to slow down the code. And I would also check if switching CS(PH3) and RD(PH6) high/low one at the time instead of at the same time does make any difference.