Several of Hime's scripts could accomplish this in one way or another (my favorite probably being the Custom Page Conditions), but you can do this on your own pretty easily. You were almost there already.
Just make a troop event that will run every turn, and have it add a state that has the autobattle flag if the MP is greater than 50:
for s in $game_troop.members
if s.mp > 50
s.add_state(29)
end
end
Or, since it sounds like you're going to be doing this a lot, just have an Each Turn page in each troop that calls an "every turn processing" common event with the above code and any other stuff you want to run each turn.
You could also check to see whether they're at 50% or more of their maximum MP using "if s.mp_rate >= 0.50" instead of "if s.mp > 50".
Finally, I believe Hime has a script to run some troop event pages after every single action, which will provide even finer control than "each turn".