Cause of Interference Between I2C devices

I’m using an Arduino Uno WiFi Rev2 with a base shield v2.1. I have 4 I2C sensors: Digital Light Sensor, HM3301, SGP30, and ATH20.

If my understanding of I2C is correct, I should be able to connect all 4 devices to the base shield and read data from them without them interferring with each other, as long as they all have different addresses (which they do).

The HM3301 and digital light sensor work fine together, but the ATH20 and SGP30 both do not. The SGP30 reads properly (using the given sample code) until another I2C device is connected, at which point it reads “SGP failed”. Similar happens with the ATH20 in that it functions properly using the sample code, but when another I2C device is connected it will freeze at the last given value and only print that.

I’m not sure why they aren’t working as intended if my understanding is correct or how to resolve this issue. Is there another step that needs to be taken to get multiple I2C devices to function together?