The leaves are behaving as if depth-buffering is disabled, so those closer are being rendered over by those further away.
I've looked for a solution or someone with a similar problem, but haven't been able to find anything relevant. I get the feeling the solution is something stupidly simple, but it has eluded me so far. I would rather have uploaded a blend file, but I cannot for the life of me figure out how to do it on this website, so I've taken 3 screen shots of the problem, each one slightly rotated to hopefully help you see what's going on.
The problem doesn't happen when the leaves are instanced onto the branches, but the moment all the objects are combined into one mesh, sharing one material, this starts happening. I've tried using images both with an alpha component, and ones without, and it makes no difference.