OP, I don't blame you for not having the guest bath supplies ready at your new house when they showed up unexpectedly, however, I do believe that you should as a general rule have basic bath supplies in your guest bath for guests. I know that you don't necessarily want these particular guests there, but unless you are going to actually tell them "no we can't host you", then you should do some minimal hosting and that includes providing soap, shampoo etc. It was rude of them not to bring the shampoo back but I actually don't think it's the very rudest thing in the world to use your shampoo if they had no alternative and you weren't around to ask (I do think they should ask of course and return it).
Same with food...you do NOT need to make their favorite meals nor provide anything different than what you are eating but again...unless you are prepared to say "no we can't host you" then you need to have enough food in the house for everyone you are allowing to stay with you, even if that means making a trip to the store.
Basically, I am encouraging you to learn to say no. If you can't host them, don't host them! You don't have to. There is no rule that says you must host family at cetain intervals. Say no. But if you or your husband aren't going to ever say no to them, then I'm afraid you are only encouraging this behavior.
Having said that, they sound like boors. I would not enjoy hosting them either! All the more reason to learn to tell them no. Your husband should take the lead on this, since this is his family.