Lots of good advice here already, so I'm going to get a little geeky and try to tie it together and explain why the advice is good advice.
Mash efficiency is defined as conversion efficiency times lauter efficiency. Brewhouse efficiency is mash efficiency times vol in fermenter / post boil volume. The
ratio of mash efficiency to brewhouse efficiency is almost completely controlled by your equipment profile, and doesn't vary much with the mash and lauter process.
Conversion efficiency is the amount of sugar actually created in the mash divided by the max potential sugar in the grain bill (both measured by weight.) Turns out that the max potential sugar doesn't really vary too greatly based on the composition of the grain bill. Most base malts have about 80% potential sugar by weight (1 lb of grain converts to a max of 0.8 lb of sugar.) If your specialty grains make up 10% of your grain bill, and have 10% lower potential than your base grain, then the potential of your overall grain bill is only 1% less than if it was all base grain. Thus when looking at max potential, little error is made by ignoring the lower potential of the specialty grains (unless you have an awful lot of them.)
It turns out that the max SG of the wort in a mash (prior to any dilution) is just a function of the mash thickness (qt strike water / lb of grain.) Thus you can determine the completeness of conversion in your mash by knowing the mash thickness, and measuring the SG of the wort. You can then choose to extend the mash until you get the level of conversion you desire. In a well conducted mash you can get 95% - 100% conversion efficiency.
As has been said, the number one variable controlling the rate of conversion is the crush size. Finer grits just convert faster. The larger the grits, more more unconverted starch you are likely to have at the end of any given mash time. The next two most important variables are temperature and time. Conversion happens slower at lower temps, and longer mash times give more time for conversion to complete. A distant forth is mash pH, which has a small effect on conversion rate.
Another thing that my have affected one or more of your brews is higher gelatinization temps for recent European grown grains (weather related.) Before the starch can be converted to sugar, it must be gelatinized, and this occurs faster at higher temps. If the grain itself comes in with a higher than normal gelatinization temp, a low temp mash may end up getting very poor conversion efficiency.
Lauter efficiency is defined as the ratio of sugar collected in the BK to the sugar created in the mash (again measured by weight.) The more sugar you leave behind in your mash, the lower your lauter efficiency. A no sparge process provides the lowest lauter efficiency, followed by a single batch sparge, then a double batch sparge, triple batch sparge, etc. A well conducted fly sparge can have a lauter efficiency slightly better than a triple batch sparge. However, a poorly conducted fly sparge can have a lower lauter efficiency than a single batch sparge. It's much simpler to conduct a good batch sparge than a good fly sparge, which is why fly sparging tends to have more variability than batch sparging, and why you got recommendations to try fly sparging to help diagnose where your efficiency losses originate.
Turns out that it is relatively straight forward to predict lauter efficiency for batch sparging, but almost impossible for fly sparging. The following chart shows the max lauter efficiency possible for no sparge and 1, 2 and 3 batch sparges as a function of grain weight to pre-boil volume ratio for two different grain absorption rates (0.12 gal/lb - typical for an MLT, and 0.06 gal/lb - typical for aggressively squeezed BIAB.) Based on data provided to me by another HBT member, a good fly sparge can give you 2 - 3 percentage point higher lauter efficiency than a triple batch sparge @ 0.12 gal/lb absorption (the solid green line.)
To understand where your mash efficiency is falling short, you need to know both your conversion efficiency and your lauter efficiency. Conversion efficiency is determined by the
method here. Lauter efficiency is calculated as: Mash efficiency / Conversion efficiency. If your conversion efficiency is less than 95%, then you need to look at crush, mash time, mash temp, and mash pH (in that order) to improve it. If your lauter efficiency is less than the solid line on the chart for your process, or less than the solid green for fly sparge, then you need to look into your sparge process to improve your mash efficiency. If your fly sparge lauter efficiency is lower than the solid orage line, then you would be better off doing a batch sparge.
Brew on