I don't think it's your system. I think there is something gone astray in your process and/or calibrations. I have a typical 3 vessel system and with 5 and 10 gallon batches I always see low to mid 90's on mash efficiency and high 80's to 90 on BH efficiency. There's nothing high tech about my system other than the PID's that control the temps. I have a chugger pump, 25' of 1/2 copper on the HERMS, a morebeer false bottom for sanke kegs. Simple and generic.
If you are sparging until pre-boil level is reached in the BK, with fluid on top of the grain bed the whole time, you should be exchanging sweet wort with water in the MLT and should be collecting the good stuff just fine. I'll assume your sparge water is 165F to 170F (cold water will not "wash away" the sugars as well as hot water). Of course if there is any channeling, your efficiency may suffer. With proper grind and a good top swirl, there should be no channeling. As long as there is flow and bits of grain are not being recirculated (i.e. a filter bed does actually form and the liquid on top of the grain is clear and nice), your false bottom and flow is good.
Years ago, I got rid of sparge arms, drippy things, and spray things. Went with a simple silicone return tube that lays on top of the grain bed and swirls the fluid. I'll never go back to anything else. I keep about 1.5" of fluid above the grain bed during mash recirculation and sparge. IMO there is no reason for anything more complex than that.
You should be able to run your pump full flow during mashing, if you have enough coil to exchange heat. Flow rate is more for temp control and response time. If you are flowing and the grain bed is seeing the correct temp until conversion is complete, you are mashing. For sparging, sure, restrict the flow to match the draining of the wort. IMO a 20 to 30 minute sparge is fine.
First, calibrate your refractometer. Both of mine were WAY off out of the box and over time need to be recalibrated. It's as simple as dripping some distilled water on the lens and adjusting the screw. If you don't have an adjustment, know how much its off and apply that offset to your readings. If you use a hydrometer, remember to adjust for temperature.
Next, calibrate your temp probes, thermometers, whatever you use to determine and control mash temps. Use a known accurate thermometer or compare it against another. Adjust or remember and apply the offset as needed.
For fun during mashing, check your SG every 5 or 10 minutes. You will see it increase then plateau. When it no longer increases, you know that you have converted everything you can. You can also do an iodine test if you like. Remember to let that wort sample cool before checking. Some refractometers are not accurate with really hot liquid. I keep a couple shot glasses and a bowl of water on my bench. I dip about 1/4 of the shot glass, put it in the water bath, then a little white later, check my SG and pH.
Speaking of pH, if you have a meter, make sure its calibrated and check your pH about 10 minutes into your mash. Have your acid ready in case it needs to be adjusted. If adjusting it, check it again in 5 or 10 minutes. pH meters do stray. Keep them calibrated and clean. Rinse the probe in distilled water after removing it from the storage solution and before placing it back in the storage solution.
When mash is complete, raise the HLT/Recirc temp to 168 or so (give or take a couple degrees), then begin your sparge. Go slow and keep sparge water on top the grain bed. When your pre-boil level is reached, stop. Grab a sample of the sparge runnings, let cool, check pH and SG. The final runnings should be near 6.0 and 1.010. If its close, you did great! I normally sparge with about 2" above the grain bed, then stop the HLT input when i'm about 1.5 gallons away from my pre-boil level. This way there isn't as much water to remove from the MLT during cleanup. For now, I would recommend you just let-r-rip and keep flowing until pre-boil level is reached.
Before you kick on the boil STIR THE BOIL KETTLE (some people forget this, there will be some density stratification in the kettle) then take a sample, cool it and log the pre-boil SG.
Do your boil. Half (or more often if you like) way through, check your level. If you need to adjust the heat to reach your post boil level in the right about of time, adjust as needed. When the boil is done, grab another sample and let it cool. Log your final SG.
Plug all your numbers into beersmith or whatever software you like. My hunch is after you check everything, calibrate everything, and keep it simple, your mash efficiency will be at least high 80's