For your ZOrder, I am not sure why you want to set it to the Y positions. Right now, if the Y of hero is lets say 600 (because he is at 600Y on the coordinates) your bow, which I think is newsprite7 (You may want to rename them so they are easier to know what is what) is also being put at 600, but that would be like "stacking it up to layer 600. Think of the ZOrder as “layers” on top of each other. If you want the bow to show on top of the character, try making the hero ZOrder at 1 or if you have a background image Hero ZOrder= backgroundimage.ZOrder()+1 Now make the bow ZOrder= Hero.ZOrder()+1 so it will always be in front of character. Make your trees ZOrder= Hero.ZOrder()+2 so the hero and his bow are behind the trees. I hope that makes sense and helps with what you want to do, if I completely misunderstood what you wanted to do, then please ignore
Well I think ysorting is ok but you can do what snowbunni said and try setting bow to hero z +1. And if no love there, try setting it to hero y + 1.