I wondered what your <identifylayeroption> in identify.xml was set to? I have mine set to visible and it honors that setting when the map first comes up (the visibility of the layers in the ArcMap project.) However, when layers are made visible after the map has been opened, it does not honor those visibility settings. For example, the initial view of the map has the address points turned on and the water meters are off. I can identify the address points. When I turn on the Water Meters, I am unable to identify them even though they are now visible. Maybe my issue sheds some light on your issue?
UPDATE!
I have since found Robert Scheitlin's identify that DOES honor layer visibility. Thank you Robert.