This is an interesting scenario. One thought I have at very high level but haven't tried is to create a secondary data source with client and market columns and then blend your primary data source to the secondary Market field only. Then create a user filter (ie. client) that will filter on the secondary data source and flow through to the primary data source. Like I said I haven't tried this but in theory this sounds nice if it works. I'll let others chime in.
Actually I just re-read your requirement and my solution will filter to just the client markets and not have all markets data available to the client nor does it address setting the filter to their first market by default. But I still like the solution