Check out the variable VISRETAIN. Type in on the command line. It most likely is set to “1” which means retain the XREF layer settings. This is a good thing and it should be set to “1”.
But if there are visibility problems – it may have become corrupted. You may start getting layers not showing up, or layers that are the wrong color. Detach the offending xref. Set VISRETAIN to “0” (off). Purgeall. Then reattach the XREF. See if that fixes it. Be sure to set VISRETAIN back to “1”.
By the way, when you set it to “0” – you will loose all of your layer ON/Off settings for all xrefs, not just the one that was not working right.