Yes, you can add a visibility parameter to the block, set up whatever visibility states you like, and add the visibility parameter to the block properties table in order to switch the visibility state, presumably along with changing other parameters at the same time or else that would just be added complication beyond just using the visibility parameter directly.
You cannot dynamically change the colors or layers of linework/text aside from using visibility states.