Hello Colbert,
Upon purchasing a gamepass, the player is purchasing the product you published the gamepass for. To change or remove this perk is going against the player’s “contract” if you will. They have bought the gamepass expecting a feature that you have said they will obtain. As you mentioned
By the Terms of Service, the expectation with game passes is that you honour the purchases made.
If there is an issue with a gamepass, you should adapt the gamepass and not change it. For example: Let’s say you have made a Weapons gamepass, but you don’t want player’s to be using weapons in your game anymore. You should still keep the weapons ingame but perhaps make them weak or not do damage. Instead they could have an effect such as freezing a player in place or propelling a player away on impact.
Another example:
You make an admin command gamepass. You realise that this is not what you want for your game. You understand that you cannot remove their perks but can take the gamepass offsale. This is not ideal for your game of course due to 4000+ people having them still. The way you can loophole this is by creating a new game, it can be the same as the old but the actual place must be separate. In this game your “contract” with the player is void as it is a separate game. They purchased the gamepass for the previous version and as long as you leave the old game up still, roblox will not be able to have an issue with you since player’s are still obtaining that perk.
Hope this helps.
Fxnlxn