For saving and loading, you could add a "coins" value and "locked_characters" value to the "stats_load" scripts, which will allow you to use the "stats_*" functions. You can also just use default methods for saving and loading data (look up GMS2 tutorials).
In order to handle locking/unlocking characters, you'd probably want "obj_css_zone" to check the "locked_characters" value to see if its character is locked or not.