HDMI offers many advantages, and a few disadvantages. One of which is it's inability to transport the native cc data from the STB to the display. As you have discovered, if you use an HDMI input you must program the STB to deliver cc data.
I have the same hookup as you, and I have also found that the cc displays on many programs appears and exits from the screen faster than I can read it. I'm noticing it particularly on PBS stations.
This is not as serious a problem for me as it is for you, and there is a fix.
Instead of connecting the STB to the display with HDMI, make the connection with component cables. These would be the red, green, blue cable hookup. You will NOT loose your HD with this connection. The component hookup is analog, while the HDMI hookup is digital, but both connections will deliver true high definition. C/Net has a video addressing this very issue at: http://www.youtube.com/watch?v=eAHpt-A2h5E
Once you have connected the component cables, you can use your TV controls instead of the STB to turn on the closed captioning, and the problem should end.