Take a stream sample to find out what is in the water you are fishing. Match what you see then make sure you are getting the fly down into the strike zone. If you are not losing some flies you are not fishing deep enough.
I constantly catch crappie and bluegills on flies. I fish ponds and use small woolys or scuds under a strike indicator. It helps if there is a bit of chop on the water to put action into the fly.
Distance is accomplished by proper casting technique, I suggest you contact your local fly shop and test some rods,maybe take some casting instruction. Tell them what you want to fish for. They will guide you in the right direction.