The I2C bus can not deal with crosstalk between SDA and SCL.
If you have wires that stick together for SDA and SCL, then split those wires.
You may keep a SDA wire close to a GND wire, and a SCL wire close to a GND wire.
The GND wire is in my opinion the most important wire of the I2C bus.
10k pullup is only a little pullup. I'm thinking about 1k5 or 2k2 (for the total combined pullup).
Do you know how much pullup the Metro Mini has and the display ?
There is a way to measure in your circuit what the pullup is.
For the AVR family boards, this is possible:
Wire.begin();
Wire.setWireTimeout();
I think that is wrong, the timeout should be a normal part of the Wire library, without using extra functions. The timeout could be used to be able to continue with the sketch for the very rare event that the I2C bus fails. It should not be part of normal communication (such as a checksum for serial communication).
A Arduino Uno has a 5V I2C bus and your display seems to have a 3.3V I2C bus. That means your noise margin will be gone with a Arduino Uno. If you use a Arduino Uno, then you need a I2C level shifter, but that weakens the I2C bus.
Sometimes two resistors of 100Ω are used in the signal path of SDA and SCL to dampen the edges a little. The high-to-low edges from the processor could travel on the I2C bus as noise. The Arduino Uno has hardware inside its chip to filter incoming signals and a slew-rate limiter for outgoing signals. Newer processors don't have those filters.
The display has SDA next to SCL on the connector. That is what everyone does, and it is wrong. Read section 7.5 on page 54 of the official standard I2C document: UM10204.pdf
This is the other topic that I mentioned: SAMD51 I2C Hang Issue
In case you wonder why no one told you that the I2C bus was so wonky, well, the I2C bus was created in 1980 to be able to store data in a EEPROM chip that was soldered right next to the processor inside a television. That makes sense, doesn't it ?
Does your display have a TTL-level Serial/UART/RX-TX communication or is that a other version ? Can you get one of those ? Or did you think that I mentioned all I2C problems by now ? O no, I'm holding back.
[ADDED] I took a look at the examples for the display on Github. They are using the I2C bus in the wrong way, so I made two Issues: here and here.
It depends on the Arduino board and display how bad it is. A Arduino Uno with a common sensor might still work. You might not be so lucky.