NGUI was written so that you can have only one material per widget due to each widget having only one OnFill function. What you are trying to do requires two materials per widget -- one to draw the text, and another to draw the sprite. This is why it's not something I can advise you on. You need two distinct widgets for that and there is no simple way of getting it to work short of redesigning NGUI's core functionality or some ugly hacks. The latter approach involves creating a custom widget that would print out the string like a label would, figure out the positions of all the glyphs -- then would fill the draw buffer replacing the glyphs with sprites.
Now as for your reply... If I'm not helping, I can just stop trying to answer your questions.