Your script is fine. It doesn't work because it's not being called all the time.
Add this below your code and it should work.
You see, Scene_Map is a class that is updated whenever your characters are on a map. So what we do is to add a new 'instance' of the Font Chooser in the |start| method so that we only have to make a new instance one time.
Next in Scene_Map's update method we tell it to access the |update method| located within the BOE's Font Chooser instance we created in the |start| method.
Now whenever Scene_Map gets updated (which is all the time when you're on a Game Map), it'll also update BOE's Font Chooser along with it.
This means that you only need to change the variable |$font_number_boe_asj| in order for the script to work. You do not need to do anything else.
Though if I may make a suggestion, you can change:
$font_number_boe_asj
to:
$game_variables[10] # or $game_variables[47], etc.
so that you can change variables in the game rather than having to modify your font using a script call.