This is because of how WoG battlefield changing works. It hooks into SoD battle code, and either just calls default function (if you do BA:B-1) or chooses from several standard and one custom positions. Because there is only one custom position, every new custom battlefield is set into the same variable, so changes are applied instantly. BTW this way the battlefiend name can't be longer than 255 characters.
To make this work, you have to emulate battle code: either call WoG hook 0x761B8A (cdecl, no args) to obtain the standard memory address after BA:B or allocate Era string instead and get its memory address, then assign this memory address to [[0x699420]+0x13464].
I believe it would look like this: