I think if you are not actually working on a Firebird, this site is asleep at the wheel. But it is still a great source of information. Quadrajets are terrific carbs, but few still know how to work on them.
15" vacuum is much too low. #71 jets are not too rich, but may be a bit much for a tame 350. The HP 350 and 400/428 used #72 and #73 jets. Depending on the cam, #69's may be better if it is really a small cam. But at idle, jets and metering rods are not a concern. The idle circuit is controlled by air bleeds and the idle mixture screws. Do as Dr. Driveability suggested. A vacuum gauge is your friend. I prefer ported vacuum for the distributor. The ported vs manifold argument has been going on forever. In my experience, ported is best for stock engines. Manifold vacuum helps when the cam is so radical it won't idle at all.
Stock timing is 9° so by using 15° plus manifold vacuum, you are way over timed. Try the 9° and ported vacuum. Adjust the idle speed screw for 600 to 800 rpm, then adjust your mixture screws to get the highest vacuum reading. As you lean out the idle, it will speed up, so reduce the idle with the idle speed screw and re-adjust the mixture screws. Keep doing this until you get at least 20 " vacuum at around 650-700 rpm.
If still pig rich, all I can think of is the float level. Every Q-jet has a specific float level that works best for that particular engine. Using a generic level like 1/4" on every carb leads to problems, yet some re-builders still do that. The plastic float can absorb fuel and sink the float. The alcohol in today's gas just makes that worse. Because of that I am back to using the old fashioned brass floats. Also, being an Olds 400 carb, there may be small internal differences that are affecting the way it runs. I remember wasting many hours on a Buick 350 carb that would not idle right on a Pontiac 400. Finding a correct year Pontiac 400 carb did the trick.