The answer is depends on how you use gate application.In my ideas below I assume that user domain gazetteers situated situated between other PRs(ie Tokenizer,Gazetteer,JAPE rules).
a) You use gate application from Java code. If yes then you can remove/insert gazetteers in to SerialAnalyzerController according to user identifier. You can create a Map map in memory (if gazetteers are not too big) and based on current USER_ID add/remove PR from SerialAnalyzerController before execution.
b)You use gate application but do not want to have scenario 1.Then you can write a Processing Resource, which based on user identification will use gazetteer specified. Map can be created during PR initialization stage. In PR "execute" method you can get user identifier(for example from document features) and then use appropriate gazetteer.
c) try to use Conditional Corpus PR. Not sure if this is the best solution but guess it could work.