In case this is of help: the seed needs to be set before G4MTRunManager is instantiated. G4MTRunManager contains a master random number generator which is used to generate the seeds for the events. This generator is cloned from G4Random::getTheEngine() when G4MTRunManager is instantiated.
This fixes the issue, without any need for overriding InitializeSeeds. I hope this helps!