Find a way to be patient with him. I know there must be a good man in there for you to love him like you do. Sometimes it takes a person hitting bottom for them to ask for help. Maybe that's what he needs.
In my opinion your MIL is right. But, that's what love does to a person. You don't have to stop loving him to do what's right for you. As a matter of fact, I don't think you could.