A couple of things I picked up on:
1. The original gravity specified in the recipe always refers to the post-boil gravity at roughly room temperature. Your gravity was still low, but not as bad as you made it out to be.
2. 45 isn't terribly long for a mash conversion. Most recipes call for 60 - 90 minutes including a mash-out period. This could result in incomplete conversion.
3. I've only done fly sparging a handful of times, so I am certainly no expert. That being said. I feel like 30 minutes for fly sparging is awfully fast. If your grain bed is not properly set you could end up with some channeling. This means the sparge water is running down the same path through the grain bed rather than filtering through the grain bed uniformly. This could result in a large volume of unrinsed grains, leaving precious sugars behind.
I hope this helps! You may want to switch to batch sparging, as it's easier, faster, and the drop in efficiency really isn't much at all. I consistently get 75% efficiency batch sparging with a 60 mash. Best of luck.