Maybe I have lost sight of what you are looking for. I don't see how this circuit can light both LEDs in the package. That is, I don't see how the shift register can pull the LED pin high to light the bottom LED in each package.
Ah, I see what you are doing. You are using the shift register to "enable" a column and driving each row to light up all LEDs in the selected column. I would do this differently. I would use the push- pull driver on the shift register outputs since you have no way to tristate them. Then I would use a driver on the rows to "enable" one row at a time. To do this you need to do two things...
1) Swap the transistors in the push-pull row drivers so that they are in the emitter follower configuration and remove the resistors between the drivers and the MCU. This will allow the row driver outputs to float when the input from the MCU floats. It also prevents the transistors from saturating and give you a 0.7 volt drop when driving. Since the row drivers are only driving with a 1/6 duty cycle the power is 1/6 * 0.7 * 300 mA or 35 mW. The 0.7 volt drop will be useful for item 2... 2) If you float the row line, there is a sneak path between two columns through two LEDs. The current through this path will be small since the LED voltage drops are double the intended path, but it may be enough to light up. So you need to reduce the driving voltage to something below 4 volts. The row driver will drop about 0.7 volts and the column driver will drop another few tenths of a volt depending on the device selected. So this puts you in the 4 volt ballpark. But if your power supply is a little high and the column driver has a low saturation voltage, you may still get enough current to light the LEDs, especially since the sneak current can be full time while the intended current is only 12% duty cycle or so. So you might want to add a diode between the 5 volt supply and the high side drivers. This will drop your LED driving voltage to around 3.3 volts. So you need to resize your current limiting resistors and, of course, move them from the row to the column. The extra diodes may not be needed, you can try it both ways.I spent about 15 minutes thinking about this and did not test anything I have said, so I may have overlooked something important. But at first pass this looks good to me. Do you see any problems with it?
One last thought... 300 mA may be a bit high. With a 1/6 duty cycle, the average current is 50 mA. Shouldn't that be a lower drive current to get your 30 mA?