Anyone can learn anything, it just requires the right teacher. But it takes more than 6 months - you cant just "pull a decent one out of your ****"
Also, you can't go into this thinking "I'm going to learn this because I want to make money". IMHO, I think that's where bad web developers come from. The good ones learn for fun (at first anyway). Also you need to get good at it before you can make money from it!
For example, why not make MoshPitWeb a hobby site which you run for fun? Don't make it a portfolio site. Use it to gain experience in making websites and make it into a really cool site.
I think you're jumping in the deep end before you've learnt to swim
Play with designs - look at how other sites do things. What makes a site look good, and how did they make it? You don't even have to turn the design into HTML - just keep it in your image editor, at least you know how to make it then.
Maybe the design program you're using just isn't your cup of tea. I was actually hindered by PhotoShop making rubbish designs, and made much better designs in Fireworks when I discovered it. I only use PS for photo/bitmap editing now, or the odd thing I can't get done in Fireworks.
Make sure you've read tutorials on using the programs like photoshop/fireworks, figuring stuff out for yourself will - 75% of the time - leave you with little bits of the program you don't understand/use properly.
If you see a button on a site that looks cool, figure out how you can copy it and re-create something similar for your own site.
Things like drawing flames are hard to pull off - you're better off using basic shapes to good effect or even stealing a photo of flames from Google images

(not for commercial/paid sites though)
Now on to programming...
Regarding PHP; I'm going to say it... I think Code Igniter, or any other package that does stuff for you, is a bad thing unless you're an experience programmer. How do you expect to learn if you're just using someone elses code? I don't care what insecurities it creates or what anyone says, the only real way to learn to make things is making them yourself. So what someone might hack into the site because you made bad code. Figure out how they did it, and fix it! Just keep your site backed up! It's happened to me before and it's only helped me to learn.
When you're writing code, think to yourself "how would I break this?", and if you think of a way to fluff things up, make it so whatever you thought of doesn't fluff it up. You'll miss things, but as time goes on, ways to break things will become more obvious.
HTML/CSS
I'm glad to see you're using this for layouts, rather than tables

Can't moan about that! Your HTML is good - although needs some indenting IMO, if you end up with a large page with no indenting, it'll be a barsta - uh, bar stall.. to figure things out without proper indenting.
I think you should try and keep menus in lists where possible, rather than just <a>'s hunched together (look at the menu with no page style).
...so! I think that's pretty much all the advice I can give!

That, and don't give up!
edit; I'm liking the motto in your sig

But, unfortunately, you do have to cater for IE users unless there's a very good reason not to.