First off, disablenpc only disables the npc until you enable it again. Imo, this does not unload the npc. So when you load the mall shop npcs back in, they'll be on the server twice, basically.
Info disablenpc
use the commands @unloadnpc and @loadnpc in the script instead, maybe, or edit the source to be able reload only a single script (just want to show you all options, doubt you can do the 2nd option though)
Also, when you kill all monsters on a map, this does not reset the timer of the mobs.
For instance, when there's Garm up and you kill all monsters on the map, Garm will have its full respawn time again.
If Garm would not be up and you kill all mosnters on the map, Garm's timer will not reset and still spawn after its current timer.
Easiest method would be to reload the whole mobdb, however that would result in respawning other mobs that have a timer too.
Otherwise, you could let the mvps spawn from an extern npc script and just reload that one single script with the method you used at the mall shop npcs.
If you want to do a GM check to warp all players below a certain gm lvl you can do
*getgmlevel();
an if-clause would look like this
if ( getgmlevel() < 99 ) { x }
if the GM-level is lower than 99 , then do x
Hope I could help you a bit
maybe you can even fix it on your own now
Just try around, learning by doing!