For it to move like space invaders you can do something like, sprite on collision with waypoint, sub event : system pick all sprites - apply angle of motion, because they always move across and down together right? Don't use a function or a for each.
Some info on functions, when you try and apply the bullet stats to your heavy object it is not actually picking correctly, I know it implies that it would run the function for the one that collided but it doesn't and the function is separate. You can pass through the heavy objects UID as a parameter through the function, then on the function you say where sprite.UID=parameter 0. That way it will pick the object that triggered the function, but you don't need a function here.