We've had to add some legacy client grants to an old client manually, they keep getting erased.

We encountered the same issue as was answered in this question:
http://community.auth0.com/questions/3944/error-grant-type-password-not-allowed-for-the-clie

Using the management API we can set the grants to what we want for the client and it works again. The problem we are having is that if anyone changes anything for that client on the auth0 dashboard website and saves it, the grants get erased and we have to make a call using the management API to fix it again. Is there something we can do so we don’t have to redo that API call after every change made in the dashboard?

I tried to reproduce this situation but I failed on that objective so this is either specific to a client or I might have missed something. Can you please confirm that you can reproduce the issue after having fully reloaded the Dashboard application to rule out any possible issue related to caching.

In addition, if you can share HAR file containing the sequence of requests that exhibit this behavior, ideally, it should contain the request that gets client information when you access the details, the troublesome request that results in data loss after pressing save and then another request that gets client information and shows that some data was loss.

Use an HTTP capturing tool that allows to save the HAR file with the content/bodies of the requests so that troubleshooting can be done based on the payload. You can still redact/remove any information you deem sensitive and as an added measure encrypt the file and share the encryption key/password through sharelock.io and only available to people that own a @auth0.com email address.