There are two things you can do.
1. even though the hex codes are "the same" there really not. There exists 'web-friendly-colors' since for what ever reason, some colors will not display the same in different browsers (the non-friendly versions) and those that will (web friendly colors). What I am assuming is since Firefox is a better browser *cough* (im a Firefox fan boy) its actually able to display web friendly colors no problem; while IE is not able to, thus you are getting discolorations.
I see, lookign at the source code:
body bgcolor="#3B3B3B"
#3B3B3B IS NOT A WEB FRIENDLY COLOR!
http://www.w3schools.com/html/html_colors.asp
The general rule of thumb, is that if you break a hex color code into three parts, example: #112233, the first two values should be equal, then the third and forth should be equal, then 5th and 6th should be equal.
examples of friendly: #112233, #ff11ff #22ff11
examples of NOT-friendly: #121212 #FF12F1 #f1ff22, #3B3B3B
I'm not sure if there is any weird hex colors that maybe not included in this rule, but I know to be web friendly it does need to follow this criteria. I don't know, or have noticed any hex values that do not fit this criteria and are not friendly.
I haven't used photoshop for awhile, but I believe there is a setting that you can use to only use 'web-friendly' colors, if that helps.
2. make a 1px by 1px "dot" of the color the background should be, and save it in the same way (.png use the same levels of quality, etc...) and set your background as a picture of this 1px by 1px dot.
The first choice of using web friendly colors is by far the better choice of action though, but more time consuming.