So update: We brewed again about two weeks ago. Made a couple changes to our strategy.
1) Calculated for the 2.3g boil-off rate, as well as grain absorption and mash tun loss.
2)Double crushed the grain for this run, which felt risky since it is a wheat beer and I didn't want to get a stuck sparge but it went fine
3) Used bottled spring water instead of tap water.
The recipe was similar but not identical to the last wheat beer we did, but close enough that I think they can be compared in terms of the mash and boil aspects.
This brew went exactly as planned. We carefully measured all our volumes to ensure we were putting in and getting out what we expected. We also checked the mash pH (not much concern here though with the spring water) and it was 5.2-5.3 so perfect. Temps stayed right where we wanted them, got the expected volume into the boil kettle with a pre-boil gravity of 1.038 (target 1.040). Boiled at full strength still, and ended up with ~5.5-5.75 gallons into the fermenter at 1.055 OG (Target 1.058).
I don't have a final gravity yet, but should be transferring it any day (as soon as the keg kicks) and will get that reading then. But overall, I'm really happy. My next plan is to run a very small mash with double-crushed grains and tap water to determine if the water itself is hurting my efficiency. This brew clocked in right at 72% efficiency, so I want to compare that to a mash done the same way but with my water. However, I am just going to continue to double crush all my grains for the time being to be safe. The mini-mash will give me more information on what was actually happening, but at least for now, I have a path to hit my targets!