Phillippa, I think the first thing here is to try to help dh remember to take his meds - for everyone's sake, not just the gc's. I think you've been given some great suggestions on how to do that.
Also, have you asked him to tone down the yelling? He may not realize how scary it is.
Can you minimize the occasions where these problems occur? For example, if the chocolate bar issue always comes up at lunch, then perhaps avoid having lunch together. Maybe see them after lunch or meet at the park, etc. Or provide other activities the kids can enjoy while the adults are having lunch, like coloring books or whatever, depending on their age. (I know they should eat lunch, but if their parents are going to give them chocolate bars, etc., then that's not going to happen.) Or if lunch is at your house, perhaps you can make sure there's no candy in the house? Then when the gc ask for a chocolate bar, you can just say, "Sorry, we don't have any."
I realize lunch was just an example. But, hopefully, there are ways to prevent other problems, as well. Neither you or dh are going to win the discipline battle with dd and sil. So, imo, you need to minimize the effect on you.
Imo, too, if dd's feeling helpless to deal with her own children, she and sil need some parenting classes or family counseling. But that, of course, is up to them.