Yeah :D ... clients are rather "unteachable".
A link to the site would help (PM me if you don't want it public yet).
I'll have to unpick the mechanism you are using for the swatches, and detrmine the attribute ID's as these are then embedded into the style IDs for each displayed attribute.
Again, you use {display:none}... If you have FIREFOX browser with FireBug plugin, you can display that page and using the Firebug "inspect" tool, see what the style ID is for each swatch.
It MIGHT be a challenge if the swatch image AND the label share the same style ID.
In fact... I think I'm right, so you'll need a nifty bit of CSS here, using the VISIBILITY declaration.
Try this:
.attribImg {visibility:hidden}
.attribImg img {visibility:visible}
(NB: This PAIR of declarations MUST be in the order shown, otherwise you will see neither the image NOR the label)