Marriage is truly a lot of hard work. My suggestion would be to work on those issues that you are referring to until they are solved before even considering marriage. There are so many things couples need to consider before walking down that aisle. Lets face it most couples fight over money issues. You should both have a minimum of 6 months worth of living expenses put into a "slush fund" saved and only to be used for financial hardships in the future. One of both of you should have a decent career established with health benefits as well. You should not start a marriage in debt - start paying off all bills or get a plan in place.
I've been married for 12 years and too have had good times and bad times. You have to be truly committed to eachother and be willing to work out issues, communicate, negotiate, share responsibilities, define what eachothers role in the marriage is expected etc. You have to have the same morals and values as well and have the same goals and dreams. Most young people will say that love is enough but the divorce rate in this country proves that it is not. Its work, every single day and some days those flaws that you speak of can get quite annoying years from now!
So to answer your question, I honestly think 20 is entirely too young. Your sutuation is a bit different since you have a planned child on the way already and that in itself kinda makes me think that both of you have some growing up to do. Sorry-