I had a number of problems with ValueChangeListeners in JSF until I spend several days figuring out what's happening "under the hood". The documentation is inadequate, and some of the better books are just plain wrong. I wrote up some information about this here. The part that might be affecting your application is this:
If you want a component to directly update the appearance of another component, both must have their immediate attribute set to �true� or the behavior is �unspecified��which means it doesn�t work, at least in the RI. And again, the form must be submitted (absent any Ajax processing to do so)
. Based on what I was seeing in your code, I don't think both components are set to "immdiate='true'"