All my v1.2 h-cards are overclocked so maybe cgminer does not like that. The v2.3 is not overclocked by me but it comes out of the box pretty much pushed to the limits (ie the adjustable voltage pot is aggressively tuned already). I dunno, I will wait until the next release of cgminer and see if kano/ckolivas make any improvements. I said it before and I will say it again, I wish cgminer/bfgminer had a chip table that allowed me to manually set which chips I want to be completely turned off or tuned down from the start.
bfgminer already support table with per chip start value.
Here is part of my bfgminer config file that I use on my system where I have about 14 bad chips and I want them to start very low (at 32) but everything else to start at 56. If you want you can set start value for every single chip (like on chainminer).
"scan-serial" : [ "bfsb:auto" ],
"set-device" : [
"bfsb:osc6_bits=56",
"bfsb0av:osc6_bits=32",
"bfsb0be:osc6_bits=32",
"bfsb0bi:osc6_bits=32",
"bfsb0cj:osc6_bits=32",
"bfsb1ar:osc6_bits=32",
"bfsb1aw:osc6_bits=32",
"bfsb1bn:osc6_bits=32",
"bfsb2ag:osc6_bits=32",
"bfsb2av:osc6_bits=32",
"bfsb2ay:osc6_bits=32",
"bfsb2ch:osc6_bits=32",
"bfsb3ad:osc6_bits=32",
"bfsb3bn:osc6_bits=32",
"bfsb3cb:osc6_bits=32"
]