TPIC6B595 Output Unable to Allow Supplied Power to 7-segment Display
You are getting confused. The pullup resistor is only needed on open drain when you are using it to generate logic levels. It turns the OD output into an RTL output.
You don't want that.
Instead you want your open drain outputs to act like a low-side switch transistor - which is infact what they are.
You can do that by simply placing your LEDs in series with your &quot;pullup&quot; resistor, thus:



simulate this circuit &ndash; Schematic created using CircuitLab
I have only shown two elements there (everything inside the dashed box is inside the shift register), but you can see now how when an output is &quot;on&quot; the transistor conducts, and the current flows through the LED, through the resistor, through the transistor, and down to ground.
Your resistor value is then calculated as simply
    9 - Vfled
R = ---------
      Iled

For 20mA and a 2V forward voltage that comes out as 350Ω - so your 390Ω resistors are perfectly fine.