Well, that's a character depth problem (known as z in this case)
You said that the depth was ignored (as it is on that print screen) unless the actor or anything else was right above the event?
On his method, there's this(it says exactly what you said-> above) :
above, z = characters.find {|chr| chr.x == @x && chr.y == @y - 1 }, 0
if above != nil
# If found, adjust value by this one's Z, and the other's.
z = (above.screen_z(48) >= 32 ? 33 : 31)
end
Basically with his logic he's checking if there are any $game_players right above the character...
chr.y == @y - 1 does that (notice that Y's axis is the opposite than it is on maths)
To correct it in terms of that big chars, you replace it to this:
above, z = characters.find { |chr| (chr.x == @x - 1 || chr.x == @x || chr.x == @x + 1) && chr.y == @y - 1 }, 0
As I don't know if he changed the sprite_character class somehow, I can't do it in terms of character width, that would check which characters need the +1, -1 on X and Y axis.
Anyway's, this should work
Sorry if not, I tried xD
See you ^^