I don't know if this will help, but I have a "bad" name and a "good" name for my little girl. She's very intelligent and I think she understands when I'm being lax and strict with training. She's always "Lupa" when she does something correct or when I'm in a lax mode. Anytime she does something wrong, won't listen or when I am being strict for whatever reason (such as when I notice another dog before she does and want her under my control before she starts something), she's "Dog." Whether she understands her double name or if she's just responding to the tone of my voice, it works.
When she's off leash and decides to bolt, I say, "Lupa, come!" Usually she will come, but if she doesn't, I say, "DOG, COME!" in a much firmer voice, as in when a parent calls a child by its full name and the child knows it better obey immediately; this is no time to fool around. As soon as she returns, she's "Lupa" again so she never has a negative association with her name nor following commands.
I think gradually increasing the distractions around her during training would be a better route, but I can't properly re-train her (she's 200 miles away until October), so this works in the meantime. Basically, I'd recommend keeping the secondary "bad" name in your back pocket for emergencies until training is complete.
1 German Shepherd (Lupa), 1 Cat (Hungry Joe), 1 Corn Snake (Caduceus), Banshee (pitt and/or boxer mix)
RIP: 1 Betta Fish (Quasimodo)