I had a similar issue, I wanted to use left Ctrl for crouch toggle (which is bound to C by default) instead of its default binding crouch (hold) and the game kept reverting my settings. I had to bind crouch (hold) to some unused button and then set left Ctrl to crouch toggle - then the setting finally stuck.
Don't try changing C to do something else and don't leave either crouch button blank. I think it might have something to do with C being bound to skipping dialogue.
I use
C for
Strafe Left, so I had to move skip dialogue to another button, cause I kept skipping dialogue while following whoever was talking whenever I strafed. I have
Crouch Hold bound to
Shift, but nothing on
Crouch Toggle, so I might try to bind some random unused key to
Crouch Toggle to see if that fixes it, cause to fix it, I bind
Shift to
Crouch Toggle, and the back to
Crouch Hold (which I must do after every save game load).
Update: I tested it now, and that does seem to fix it for me.
C isn't also
Crouch Toggle now when I load a save game. Thank you for the tip
Just out of curiosity, are you using one of the mods that adds key bindings to slots that don't show up in the menu (like a dedicated key binding for walk, dodge, etc.)? If so this may be the source of that issue. If not, I'm not sure why that's happening, but worth asking just in case it's this simple.
I don't have any mods installed. but as Riterando mentioned above here, I might have to bind something to
Crouch Toggle just to avoid this issue.
It still should be fixed though.