As Abudalkhalek said already, the problem is that LEACH does not do dynamic routing. I do not know how LEACH in Castalia is implemented, and whether you can define static routes between multiple clusterheads.
The "problem" with latency (LEACH being better than the other two) is not a problem at all. As you can see LEACH does not work: only packets that are one hop away from the basestation are received. So it is natural that these packets will have very low latency (they do not have to be routed via multiple nodes).
Something else which seemed a bit strange to me, was that for the protocols that are working (AODV, LABILE) there is a big difference in received packets from 300s to 400s (almost double). I assume the traffic is constant, so why this big change?