I'd like to expand on Oli's answer regarding the transistors.
BJTs, in a common emitter configuration like you're using, are basically current amplifiers: they take their base current, multiply it by their h_FE\$h_{FE}\$, and pull up to that much current from their collector.
So your transistor has to be able to source the maximum current (all segments) from 5V5 V out the collector. Given your 220 ohm\$\Omega\$ segment resistors and the 2 or 3 V forward voltages, we get:
I = V / R = (V_SUPPLY - V_F - V_CESAT) / R\begin{equation} I = \frac{V}{R} = \frac{V_{SUPPLY} - V_{F} - V_{CESAT}}{R} \end{equation}
I_RED = (5 - 2 - 0.4) / 220 = 12 mA\begin{equation} I_{RED} = \frac{5 \mathrm{V} - 2 \mathrm{V} - 0.4 \mathrm{V}}{220 \Omega} = 12 \mathrm{mA} \end{equation}
I_GREEN = (5 - 3 - 0.4) / 220 = 7 mA\begin{equation} I_{GREEN} = \frac{5 \mathrm{V} - 3 \mathrm{V} - 0.4 \mathrm{V}}{220 \Omega} = 7 \mathrm{mA} \end{equation}
(IMHO, these seem rather high. I usually only need 2 mA average -- which would be 4 mA here due to your 50% duty cycle -- to illuminate older LEDs, and much less for newer "high-efficiency" LEDs.)
So the total currents are 84 mA for red and 49 mA for blue. Looking at the 2N3906 datasheet, I see a couple potential problems, looking at the graphs on page 3:
- The Collector-Emitter Saturation Voltage vs. Collector Current graph shows V_CESAT\$V_{CESAT}\$ sloping a lot at 50 to 100 mA. Referring to the current equations above, you can see that the segment currents will change a lot if the V_CESAT\$V_{CESAT}\$ changes even 0.1 V.
- The Typical Pulsed Current Gain vs. Collector Current graph shows h_FE\$h_{FE}\$ sloping down rather fast in the 20-100 mA range.
So let's find out what your worst-case base current needs to be. Let's assume a minimum h_FE\$h_{FE}\$ of 30 (from the "On Characteristics" table on page 2, using I_C\$I_C\$ = -100 mA). That means you need 2.8 mA of drive on the base. Using a V_BESAT\$V_{BESAT}\$ of -1.0 V from the same table:
R = V / I = (5 - 1) / 2.8 = 1.43k ohms.\begin{equation} R = \frac{V}{I} = \frac{5 - 1}{2.8} = 1.43 \mathrm{k} \Omega \end{equation}
So the 2.2k ohm2 k\$\Omega\$ resistors are not enough (but are enough for typical rather than minimum h_FE;\$h_{FE}\$; typical is at least 75 from the graph on page 3) and the 470 ohm\$\Omega\$ resistor should be plenty strong. Also check that your I/O pin can sink that much current.
IMHO, you're either putting too much current through each segment or just asking too much of the 2N3906. You really want your transistor to have a reasonably flat V_CESAT\$V_{CESAT}\$ across your current range.
Further, when driving high currents into 7-segment displays, I've seen "ghosting" effects where the light from one segment is simply spilling over into physically neighboring segments. Make sure this isn't happening to you: drive all segments on one display and one on the other, and see if the 6 "off" segments show different ghosting brightnesses depending on proximity to the lit segment.
Personally, I use MOSFETs for these applications. Typical R_DSON\$R_{DSON}\$ of 1 ohm\$\Omega\$ gives a lot lower voltage drop and current-change-vs.-segments-lit (as long as R_DSON << R_SEGMENT\$R_{DSON} << R_{SEGMENT}\$), gate current is so low anything can drive it (it's voltage driven, not current driven), and there's no saturation voltage to deal with.