What contributes to the overall I2C Bus length?

Looks complex! You can change I2C clock speeds you know. I would be trying a simpler arrangement with just connecting devices together, and drop the clock rate until I got reliable operation. This page has a table of some typical values you can use for changing the clock speed:

You could do a test with different cable lengths to see if that works. Also play with different values of pull-up resistors. More aggressive pull-ups might help with longer cable runs.