this is a well-known bug in maya's render layer management, and has not yet been resolved as far as I know. I have had several scenes go through this problem -- suddenly the render layers stop working correctly, target nodes will not allow connection, and a bunch of objects lose their shading group association altogether. To this day, because of this error, I still go the old-fashioned route and break out individual Maya files for render layers. If everything in your scene is referenced in other files, and you make shader changes to those references in each render layer file you create, you should have no problems.
The other solution that has worked well for me in the past is to write a MEL script that toggles back and forth through different render layer set ups. To get you started, these lines will select all polys, subdivs, and nurbs and assign a specific shader to them:
select ls -typ nurbsSurface -typ mesh -typ subdiv
;
hyperShade -assign shadingGroupNameSG;
You can use this same kind of code to change attributes on lights or shaders, or hide geometry as needed (setAttr command).
I find that for big projects this is more reliable than hoping render layers will not fail. It seems overwhelming at first, but I've gotten used to breaking out lots and lots of files. My last major project had 40 shots, approximately 6 render layers per shot, for a grand total of about 240 Maya files.
JCK