After /gps/energy 99 eV or whatever /gps/source/list gives The number of particle sources is: 1 ... Energy: 1 MeV ... Somewhere along the line, in G4GeneralParticleSource::ListSource(), instead of the current energy, it invokes the default energy via G4Cache. Fortunately, the output of /gps/source/list is just wrong. The energy actually used is, as far as I can see, the energy set in /gps/energy.
*** This problem has been marked as a duplicate of problem 2136 ***
If you still need to see the updated values before BeamOn, use /run/workersProcessCmds command that flashes all commands to worker threads.
/run/workersProcessCmds doesn't make any difference. It's only the energy, as far as I can see, that is not correctly listed.