After that boarding and then pushback. Then GSX asked for Close Main Exit while it was closed already.
Because there was another error in your .CFG file.
The Aerosoft CRJ is a bit unusual, in the way it use a custom variable even for the main passenger door, named L:DOOR_MAIN_DOOR_POS so, you should have an XML expression for it too, same as the other door:
code = (L:DOOR_MAIN_DOOR_POS, number) ( in the CFG.CFG file )
or just (L:DOOR_MAIN_DOOR_POS, number) from the GSX interface.
GSX doesn't do anything strange, other than checking those variables in the sim so, if they are right, it will always work, but they are wrong, they will never work.
The default startup configuration is to have the main passenger door as the standard Exit 1 ( code = 1 ), the cargo doors at 2 and the service doors at 3, like the default airplanes but, of course, it cannot guess automatically whatever non-standard configuration that might have been used by 3rd party airplanes.
So in Customize aircraft I've set the Main Exit and Cargo #1 to 'Door without open/close checks' to avoid further issues.
That's the easiest solution if you don't to bother checking what variables a particular 3rd party airplane might have used, that's why GSX has it as an option.