Well, if you restructure it it looks like this:
You can replace that Pi with an Arduino Duo, works the same except for absolute maximum voltage rating.
All pull-ups to different voltages form a resistance divider between the voltage rails with the I2C lines (SDA and SCL) in the middle. Builtin pull-up and pull-down resistors on microchips are typically very large, on the order of 40-70k, as far as I am informed.
If you have no external pull-up to 3.3V, the 10k wins, since it provides more current, e.g. the "stronger" pull-up.
V_SDA = 3.3V + (5.0V - 3.3V) * 50k / (50k + 10k) ~ 4.72 V
If you include the external pull-up you have about 10k to both lines, making the SDA settle pretty much in the middle:
V_SDA = 3.3V + (5.0V - 3.3V) * 10k / (10k + 10k) ~ 4.15 V
(a parallel 10k and 50k equal a resistance of about 8.3k, which is roughly equal to 10k).
So connecting the PCA9685 directly to the 5V might not be a good idea. One can however connect the PCA9685 to the PI's 3.3V, that would work perfectly. 3.3V is enough to power both the PCA9685 and also run the npn transistors, although I would recommend a small capacitor in the PCA9685 circuit, like a 100nF or 1µF so current draw peaks do not tax the PI's 3.3V line so much that the PI crashes.