I was just taking to a friend of mine who is an attending and this is what he had to say about an MPH and the timing to do it. "The worst time would be to do it before medical school. Doing it in medical school isn't as bad of an idea, because you'll have some sense of what you want to do in medicine and how to shape your MPH around that. The best time to do it is in residency. 1) Because you'll know with a great deal more precision what it is exactly you want to do with your career and how an MPH might help you do that and 2) Many residency programs will pay for the degree or will give you a discount on tuition at the connected university."
I have a number of friends who have done MPHs, and I'm amazed at the degree of flexibility in some of the programs. I think you're better off waiting until you know it is what you want to do in medicine. In terms of admissions chances, I think doing a whole masters degree just for the sake of making your application more attractive is spending/doing a lot for not a huge payoff. I think volunteering for a year with something like AmeriCorp or overseas in a medical context would net you far more bang for your buck and would also cost a great deal less. If your GPA is bad, there are many good feeder post-bac programs that would do a better job of strengthening your application.
Just my two cents... Best of luck!