If you set an AO profile with the "equals to" message counter as one of the criteria, it will only run when that counter matches exactly. So a counter of 10 would match after the alarm repeats 10 times but never again. And using "greater than" will send an email on every repeat after the first 10.
The overdue age option in an AO profile should probably just be called "age". That sets how long after the alarm was opened that the AO profile runs. So for any given alarm, that AO profile should only run one time.
To get repeating email messages, I think you have two options. You could use set an interval in the AO profile to send email every X minutes. This should work well, but the timing of the first message might not line up with when the alarm opened. You could test the behavior to make sure it is what you want. This would not take into account message count though.
(Neal beat me to this one.) The other option would be to have the AO profile run a script. The script can use the action.email() function, but first it can use any kind of logic you want to decide whether it is time to send another email message. This has the most flexibility but also likely to require the most effort.