Hi,
What is your version of STEP7? Previous versions of STEP7 had a 'feature' in CPU that made modules passivate if there were any error on a channel.
Later versions now have a parameter selection, passivate by module, or passivate by channel. It is my experience that passivate by channel is best.
Although, I imagine a 'push' on the module to fix this error would mean that the module is not currently set correctly.
A module in passivate (non-failsafe) should come back after some time (auto reintegrates) as long as the channel error clears. (if failsafe, then after the error clears, an acknowledgement is necessary).
Cycling power on the module (by removing it from the rail as you describe) clears the memory of the module, and if it comes back into a good state, than the channel error has cleared.
Do you have wire break detection set for these modules?
This is interesting....

"There are no secrets to success. It is the result of preparation, hard work, learning from failure.”~ Colin Powell