Here are the reasons that could trigger a self-donor badge:
 
If the donor of an existing gift is changed to that of a participant.
 
(flag = true)
 
For secondary registrations if they paid a registration fee and registration fees are included in status indicators. (flag = true) When a participant registers and makes an extra gift or registration fees are included in status indicators. (flag = true) If a participant's self-gift was changed to a different donor. (flag =false)
 
If a participant's self-gift is refunded. (flag = false)
 
It may be possible the registration fees EDP was set one way and then changed and the registrations occurred before and after the EDP changed.
 
An example of a problem:
 
Constituent B makes a donation to Constituent A.  Constituent B registers for the event Admin changes soft credit of Constituent B's gift from Constituent A to Constituent B.
 
This results in the self-donor flag getting turned on for Constituent B.