Thanks for your responses. I'm setting it up basically like Atlas suggested. When it comes to the other problems, like #19 I feel like there are just too many scenarios that could happen. I must be missing something in terms of how to think about it.
For example #19... first of all, there are many different ways the order of the visits could be before you even consider the people. Do you have to think of the way the people could be for each and every iteration (FHM, FMH, MFH, etc)?