Hi,
The thing is I don't think you need to beat yourself up so badly about stuff. Your situation is NOT AT ALL hopeless, so take heart, buck up. Here's the deal.
1.) Have you done the GREs? If not, get some study guides and get on top of that, and see if you can ace those. It will probably help offset your not so stellar undergraduate academic record.
2.) Could you get good letters of recommendation? Were you well-known by your professors such that you could get really good letters of recommendations. These would be really helpful in suggesting that they think you are capable of being a successful public health student in spite of your undergraduate performance.
3.) This may be the MOST IMPORTANT thing. You have an edge. Yes YOU. you know why? Because you have something most schools of public health love, nay in fact, they pee their pants over this. Experience in the field. Let me tell you: experience can atone for a multitude of sins... In your essay, you play up this experience especially why it has made you want to study public health and social work (feel free to give 1-2 examples of specific instances where you felt lead to pH/sw). Focus on why you think you're a good candidate. Briefly go over why you think you will be a successful dual master's student when you struggled in undergraduate (i.e. what circumstances have changed... you feel u have a direction/purpose etc etc). Also, talk about why you feel you will benefit from the program i.e. why u want to do it... how will it assist you further your career goals, where do you see yourself in say 10 years, what do you want to be doing and how will the program help you achieve that. Also what do you have to offer e.g. passion for public health, willingness to learn, EXPERIENCE IN THE FIELD... do you see what I'm saying.
Ok now that that's said. About getting into top programs. What would you be aiming at? Do you mean Harvard and JHU who tend to prefer professionals (MD, JD, PhD etc) for their MPH programs and also tend to be rigidly selective? Or do you mean uber selective state schools like UMich, UWashington etc? I think you could get into a quite good, very competitive top-20 ranked school with a 2.9 GPA. Don't be discouraged from applying anywhere just because they say 3.0 minimum. Many schools take people with less than that. Especially since you have some experience. If you don't want to waste your money applying somewhere who won't consider you, feel free to email the admissions contact and just say you have a slightly lower GPA of 2.9 (and a hopefully good GRE) but that you had experience and was wondering if you should still apply... I think you'll find that if you have good GREs, and good letters of recommendation, with work experience you can definitely overcome the GPA. So don't beat yourself up too much over it. You'll get in somewhere for MPH/MSW definitely. There's no need to do a post-bac program (which would probably be a certificate program of some sort at a school of public health) or another Bachelor's program.
So basically don't worry so much. Make a shortlist of schools you'd like and contact them for those who consider GPAs less than 3.0 (also note that if you did better in your last 2 semestres, like if you have a 3.0 cumulative GPA for your last 2 semestres many schools are forgiving... but don't worry if you don't. You have experience).
Take it from me. I had a shady-ish GPA too when I was applying and even though I pulled it up dramatically to something respectable by the end of my senior year, I got in to 7 out of 8 schools I applied to with a shady GPA and all b4 they saw my final grades AND i only had (really good but merely) summer experience. (I didn't get into Yale- I applied Social and Behavioral Sciences to Yale and was told when I called that I was rejected because the concentration didn't match my career goals and as it turns out my first semestre at Tulane, I took Social and Behavioral Aspects of Global Health, a core course, and realized I was not terribly fond of the field and all it entailed...so sometimes things work out no?) So look dude, you can do it!!!