How long are the wires of the I2C bus ? Or are they in a cable ?
With level shifters the voltage levels match and the I2C bus is more tolerant for electrical noise.
However 1 in 100 is really bad, that is not reliable. It should be no errors at all, or perhaps 1 in a million or so.
The impedance of the I2C bus can be lowered to make it more reliable.
The maximum pulldown current for the I2C bus is specified as 3 mA.
When you combine all pullup resistors on the I2C bus, both at the 5V and the 3.3V side, then you can calculate the current that is needed to pull the SDA or SCL low.
You can also write a sketch that does a Wire.begin() and nothing else to keep the I2C bus idle. Then measure the shortcut current of SDA to GND and of SCL to GND.
If you have used bidirectional levels shifters (ment for the I2C bus) in RX and TX signals, those signals have become a lot weaker.
For example the TX signal is 40 mA super strong. A bidirectional level shifter with 10k pullup resistors has a high level that is 0.33 mA strong. That means the signal has become 121 times weaker.
Can you try some shielding ?