There's probably too much rock in the tank for the bigger fish to be able to get all the fry. Too many small spaces for the babies to hide that the adults can't get them. There are some fish that are better at keeping fry populations down than others - venustus for example, or some of the bigger haps like fuscos and such.