Con tu primera duda no se a que te refieres.
Con la 2da, tienes que hacer un $mail->ClearAddresses() antes de volver a pasar por el bucle.
EDIT:
Cita: No he usado PHPMailer antes, pero según lo que dices y lo que veo, es posible que en AddAddress se concatenen cada correo, por lo que a la primera pasada, solo envie uno, a la segunda, envie dos (al que envio ya y al nuevo), y así sucesivamente, esto dara que al primero le envie 8 porque se ha enviado 8 veces el correo.
Espero haberme explicado.
Asi es, por eso hay que usar la funcion ClearAddresses() para limpiar las direcciones.