IE, particularly IE6, has a few quirks that anybody working on websites needs to know about. Luckily there are workarounds, but unfortunately the workarounds for different problems don't always play nice with each other.
Unfortunately, whatever:hover and unitpngfix didn't play nice together for me. Manually doing the PNG fix was an acceptable workaround, and had the added benefit of not waiting for the page to load before swapping the pngs.
3) CSS "Hover" doesn't work right except for links in IE7 unless you set a strict doctype. So, your first step is to set a strict doctype for IE7 to work right. The main thing to be aware of when setting a strict doctype is that browsers become less forgiving; in particular, in-line elements can not have a width and height specified, so your stylesheets will need to explicitly set "display:block" if you were forcing widths and heights on spans. Also be aware that your box model will change, from the IE specific quirks model to the actual correct spec, but you were probably dealing with that already due to cross-browser compatability.
I'm sure there are more troubles you will run into, but these were the main ones that caused an IE6 headache on my latest project. I've found plenty of info on getting PNG transparency to work, and plenty on getting hover to work, but nothing on both together. It can be done, but the easy drop-in fixes might not be enough for you and it pays to understand what the root problem they are addressing is.