You can see in this image that I have a “Water” render layer but the river can’t be seen, and the weird part is that the lower part of the river (closer to the sea) is the same plane as the sea (same object) while the upper river is a different object but still can’t be seen.
Your river is under the midground layer, so you can’t see it. You must move the river to a different layer if you want to simply over it, because currently the water layer has to be both behind the midground (sea part) and also on top of it (river part) but it cant be behind and in front at the same time unless you use masks.
And as Roken wrote, use two alphaovers to merge three layers. If this does not work out, you have to either rethink the separation of objects onto render layers or use masks to separate what goes where.
Btw, compositor does not know anything about your objects, it works with render layers as they are, so while it is easy to think that this renderlayer contains many objects that should be laid out this and that way in scene, compositing engine sees it all as one big lump with only transparency providing the separation between what “is” and what “is not”.