it is not a quirk of families, the "On Collision" is a trigger and gets triggered for each instance it collides with.
you do not need the pick nth instance (the second condition) because the code will get triggered for each instance regardless when the instances are overlapping. You can verify that by checking the AFaction.PickedCount.
Your solution of setting the BBullet's instance variable is a good way to handle it. I would probably call the instance variable something like "Kills" and set it to a number like 1, then on each collision subtract 1 and if it gets to 0, destroy the bullet. So, that last condition would then say "BBullet.Kills > 0" to allow the collision to damage the AFaction.
This would allow stronger bullets that could potentially kill multiple enemies.
EDIT: oh yeah, I can edit comments, so I guess you may have to wait until you have posted enough comments before you can edit?