I tried the same scheme with common anode 7-segment display (MAX7221 + UDN2981 as digit driver + 2*ULN2803A as segment driver) - without success so far... The display defiitely reacts, but the segments do not work properly - For some reason, I cannot control individual segments in the way I need (there is a mess - all segments on all digits are either on or off).
I tried to pull up/down segment/digit outputs of MAX7221 (MAX7221 outputs, in contrast to MAX7219 outputs, are not pulled up/down internally), but without success. I can controll 8x8 dotmatrix display with MAX7221 (without UDN2981 and ULN2803A), so I am pretty sure that my software part works.
Did you leave pin10 of ULN2803 in your scheme unconnected?