You don't spawn the "family", you spawn the sprites from it.
I guess you know you have to add a global variable called "wave" and increase it after each level.
At the start of the wave, you spawn a different number of enemies of each different kind. Use the "?" operator if you want to keep your number of events low.
You could also spawn some of them "off screen", to made them gradually appear.
Another approach is putting the sprites in the screen, each one with a "level" instance variable on it. Make all sprites "invisible" and, at the beginning of each wave, make "visible" the sprites with sprite.level<=currentlevel, and "destroy" every other sprite. But I think it is harder to implement.