First I think you have to take "wait" commands between all saving and loading processes. You did between the level_load and the game_load, but I think you should also have one between the game_save and the level_load command.
Then there is something wrong with your save-and load process because you always use the same file. If you're saving autosave before changing your level then the old autosav will be overwritten and when loading it in the other level you will load the date from the old level. Solution: One save file for each level, and your level_changing function has to recognize from where to where you're changing the level. But don't save global vars! With them you have to transport your player's values from one to another level. Otherwise your player would be restored to the time when you left the level you are now entering to.