Look for files named bindings-cache.txt in your account directory (there's a main one for global keybindings and possibly one in the per-character directories if you've enabled per-character keybindings.
While bindings are stored on the server as of 3.x, you can add key bindings by editing this file while out of game. I believe the server does some kind of timestamp comparison to decide whether the server or client side is more up to date, then replaces the "older" side.
If you've somehow got local binding files with a date far in the future (which may have happened if you're using another UI and your unzip did something silly), then you may be seeing the client push it's bindings to the server every time you log in because it always things the client is newer.
You can delete all these files, then log into each of your characters; that should create new copies with what the server currently has on file for you. If those are incorrect, you may have to re-do the bindings one last time, after which they should stay the way you've set them.
Hope that helps