Intermittent instances of duplicate participant rows created - is this a MySQL issue?
I have seen similar and it has always been traced to the user submitting the (in our case) membership form twice. 

For some reason the final "Your membership has now been created" (or whatever it says) message has not been displayed, so they think it has failed and submit again.  Worse still they may get  "We cannot provide that at this time", which they interpret to mean the transaction has failed when really I thnk it is a timeout message for displaying that final "Done" message.

They should have received a confirmation email, but they have given the wrong adress, or it is caught up in a spam filter or delayed in transmission or ?

Why three times in one week? Perhaps there has been a heavier-than-usual load on the shared server leading to time-outs for that final message.