I see you got it working with the script, and serioulsy It's just as simple in event form, so by all means, you might as well just stick with the script, I just want to post my finding after running some tests(it works perfectly).
This is how it would be set up in event form, make every troop set a variable for the Actor's current lv, this way(as well as turn on a switch, since you're gonna use a common event to check your lv after battle. Note: Every trooop should have the exact same command string, no need to make it more complicated then it needs to be, all you're doing is resetting the current lv variable every battle, that's it).
Make a autorun common event with the switch you turned on in battle. Then make a condition branch using the lv variable with the add constant 1 option Boom, done.
Note: don't forget to turn off the switch after the end of the common event or the game will freeze.
PS. I'm so gonna need to use this system(I'm not gonna tie it to weapons, but I'm probally gonna have some kind of bonus system)now

I love topics like this, I wouldn't have thought of doing something like this, if I didn't start looking into it, inorder to help someone.