Yes, this won't work, since you are only adding the cleanup on the player's local machine (any script run from a dialog is local to the client machine). When a vehicle has players in it, then it will be local to the effectiveCommander's machine, but once a vehicle is empty, it moves onto the server, so the script will never be able to delete it.
What you want is to replace "_itemClass createVehicle (getPos player);" with:
private "_vehicle";
_vehicle = _itemClass createVehicle (getPos player);
player reveal _vehicle; // Something else missing, which gives you access to the vehicle right away.
_vehicle setVehicleInit "if (isServer) then { [this] execVM 'DynBr\DynBr_addEH.sqf' };";
processInitCommands;
Loki (and others) have been at me to go back and "fix" SPON Money for a long, long time, asking for stuff like allowing the mission-maker to add custom code that is run when you buy and sell stuff, without having to edit the scripts directly (if you need to do that, then the script is broken ;P). I do intend to return to it, but it is really bottom of my list compared to stuff like SPON Map (and others). Sorry!