This really is outrageous behaviour both by your MIL and by your Husband, and I think you need to be having a serious conversation with your Husband about how inappropriate it is.
Ideally, you would be contacting your MIL to tell her "DH and I were happy to accept *your* invitation, and we are happy to pay for ourselves, but we did not offer to treat you or your other guests, and will not be doing so."
If you don't feel you can do that, then yes, change the venue to somewhere you can afford (and arrange a set / limited menu with the restaurant to keep it in budget, if need be) invite whomever you ant, and contact the guests directly to let them know the details. If you are hosting, then you host on your terms. Don't tell MIL of the changes until you have told all of the other guests, and if she argues, tell her that she chose to force you into hosting without your prior knowledge or consent, and that you have been extremely generous in saving her face by not telling everyone what she did but instead arranging things so that you *can* host, rather than embarassing her in front og everyone by telling them she has misled them.
But you do need to address with your husband his attitude, and that *his* behaviour is not any more appropriate or acceptable than hers.