There are no tutorials that I am aware of but the answer is quite simple.
You know the problem, so try and think how you would solve this. I know of several solutions.
The first thing you could do is create a family that contains all sprite graphics. At the start of a layout, for each object in the family you could set its z order based on it's y coordinate. Any object that moves around (such as the player) you could put in another family and label it mobile sprites. Every tick in the game you would change the z order of objects based on their y position.
The second method would be to have two layers surrounding a character layer. For every object that can be walked behind you would split in half, putting part of it in a layer above characters or below, depending on what part of the object it is. This works well for grid based games where you can never be in front of a part of an object that you could also be behind. I think older games used this method but I am not sure.
----------------------
As for collisions, you need to create a polygon that allows the player to walk behind an object if that is what you want. A tree, for example, that was 64 pixels high may only have a collision polygon that is 32 pixels high.
Hopefully this helped.