If you use a micro with the needed 32 pins, the problem goes away

Some tips regarding the 8 PNP and 24 NPN:
- Use logic level FETs not bipolar. I did a design for my son using 2N7000s to drive an array of LEDs from my parts box and it worked very well. The reason to use FETs is you need no gate resistor.
- You don't need 32 transistors, only 8. Just drive the row outputs by transistor and the others from the PIC or similar output pin, if you use a resistor to set the brightness then you need 24 of those, but you can also use a micro with the appropriate current limiting to save parts (I do not really recommend this approach if the micro is a system controller but it may be appropriate if the micro is doing nothing but LEDs).
- You can also try without the 8 FETs, just driving the rows from your PIC. The danger here is brightness can vary depending on if you have say 1 LED turned on in the row vs 24. You may find this effect to be insignificant especially if you use the 24 brightness setting resistors. Or you could configure it for 8 LEDs at a time with 1/24 duty, it's a higher peak current but would not cause brightness variations if your output pins can pull low with 10x the current as they can pull high... I think this was the case with older PICs such as the 12C508.
- Since 8 x 2N7000 uses quite a bit of room, it would be a space saving to use an octal buffer in 74AC logic, such as 74AC541 from memory. This would do basically the same thing but in one 20 pin DIP IC package. A cool thing about this is they can latch, so you need only 24 pins in such case. The first 8 pins drive display 1 and occasionally the latch for just long enough to latch the data. The next 16 drive displays 2 and 3.
- You can use more or less latches depending on available pins. The easiest way though, is no doubt using a micro with 32 spare pins and sufficient drive capability to not need buffering at all.
cheers, Nick