The individual devices should be directly connected to the I2C bus without resistors.
Then, add pull-ups to VDD on the I2C lines. I2C requires this to function. The drivers are open-drain type so they rely on the pull-ups to make a logic ‘1’.
Choose a value low enough to give a reliable rise time for the bus capacitance. Typical values are about 1 to 2K ohms.
Once you know that you have good signal integrity, the next place to look is to make sure that you don’t have a protocol issue. This may require further debug, using simpler tests for each device and some experiments with timing adjustments. For example, you may need to add a bit of delay for the ACK cycle to complete.
In the recent past I’ve used debugging hardware like the Total Phase ‘Aardvark’ to help diagnose issues like this. Aardvark can work as a master, allowing you to exercise the bus without software and validate the basic function. It can also monitor the bus while another master is running.
Otherwise you need to either learn software or get help from that side to tweak the driver.