TLC5940, ULN2803 and 12v RGB strips

I have the kit in the subject wired up based on other forum threads. I've attached a schematic of the main wiring.

It works fine, although with the PWM is reveresed. My question is why does it work, especially what does the resistor do? I understand pull up resistors but don't quite get what is going on here.

My (I think incorrect!) understanding is:

  • When the TLC pin is set to PWM high (I'm using the standard TLC library), because the TLC is a current sink, the pin actually goes low. Current then flows from 5V through the resistor and into both the the TLC pin and the ULN pin. But then the current flowing into the ULN should open the gate a bit and the LED should come on but dim? (It doesn't BTW)
  • When the TLC pin is set to PWM low, the pin actually goes high, and so all the current from the pull up resistor goes through the ULN, and the LED comes on fully. (Which is does)

Also, I have quite a few of these things to wire up, and the resistors are getting in the way on my PCB design. Is there anyway to reduce the number of resistors, like using one for all the pins?