NC_Nick, the issue is almost certainly oxidant demand, not just sanitizer demand. Heavy bather loads dump a ton of organic waste into the water - sweat, sunscreen, body oils - and all of that consumes your free chlorine before it even gets to actual sanitization. Shocking after the fact helps, but you're always playing catch-up if you wait until after people get out.
What worked for us when we started running the tub hard on weekends was shifting to a pre-event shock the morning of, giving it several hours to gas off and restabilize, then doing a smaller maintenance dose an hour or two before anyone got in. That way you're not starting from a depleted baseline. The evening shock after everyone's done is still worth doing, but if your FC is reading low by the next afternoon it usually means the overnight shock didn't fully burn through the organics before it dissipated.
Also worth checking your CYA level if you're in a covered spa and using trichlor or stabilized tablets as your regular sanitizer - it creeps up over summer and starts blunting how effective your free chlorine actually is. I'd also pull a full panel and look at your phosphate levels if you haven't recently. High phosphates won't tank your FC directly, but they can point to a heavier organic load in the water than you're accounting for. If you're already on top of all that and still seeing the drop, the short answer might just be more water changes - dilution fixes a lot of sins when the tub gets hammered for several weeks straight.