It's normal for autogen.cfg to get overwritten every time you exit the game. You *could* put a bunch of binds in autoexec.cfg, but it is better to make a seperate config file and use autoexec.cfg to run your custom configs.
Make 2 files in the base directory: autoexec.cfg and mindfray.cfg
autoexec.cfg just contains the command: exec mindfray.cfg
and all your binds go into mindfray.cfg. This means you wont have to type in /exec from the console all the time.
Using autoexec like that makes it easy to make seperate sets of binds for aliens and humans. You could have 3 custom configs, say common.cfg, human.cfg and alien.cfg, then have your autoexec.cfg run common.cfg and human.cfg only, and in common.cfg have some binds like these:
bind f9 "team aliens; exec alien.cfg"
bind f12 "team humans; exec human.cfg"
having 3 files will save you headaches later on with vstrs and doublequotes.