Update on my end:
I think I have found a way to make it work, at least for me. When not running a 3d application, no matter what I do I can not get the memory clock adjustment to stick. Core clock does, memory clock always resets to 0 after clicking apply. This was with both Precision and with Afterburner.
Currently I am using Afterburner. So I went in to my 3d game, and whilst it was up and running, I then adjusted the memory clock - clicked apply - and it took the setting. I run two monitors, and have the AB software displayed on my second monitor, so it was easy for me to go in and make the memory clock adjustment whilst the game was running.
I have tested this a few times, and so far every time I make the memory adjustment whilst the game is running it sticks. Back at desktop, if I make a change to the memory clock the memory resets to 0 after clicking apply. Don't know if by design this is the way it is supposed to be or not, but at least I can now get it to hold a memory overclock by doing it this way.