Even if a server only uses the gen 7 and 8 TMs (default settings), this problem can still exist on a smaller scale - lots of new Pokemon got access to new TMs in gen 8, and lots of Pokemon learn moves in gen 7 that they can't in gen 8 because they didn't make it into S&S. In either case, it's not intuitive for players to have to obtain a different item for the same move in order to use it.
I suggest that instead of having a different set of TMs for each generation, it should go back to being one TM per move name. When a player uses a TM on a Pokemon, it should teach the Pokemon the move IF the generation the Pokemon learns it in is enabled in the config.
Pixelmon.hocon would have options like "TM8movesets=true/false", "TM7movesets=true/false" etc. The stat jsons for each Pokemon would still have sections for tm8, tm7, etc.