I don't have time for a very detailed reply, plus there's a TON of info in this thread on things to check, but here are some quick things that might not be readily thought of:
Your crush - if it you're getting it from various suppliers all the time, your crush will vary as well and therefore your efficiency. This is one nice thing about getting a mill so you can keep that constant. This probably doesn't account for your 50% efficiency though...
Your pH - since you're adding brewing salts I'm assuming you have a good idea of YOUR water profile. What I mean by that is you've tested the water coming out of your tap as opposed to a general profile for a large area. If your mash pH is out of whack it can affect your ability to convert starches to sugars and therefore your efficiency.
Your equipment - have you double checked your thermometers lately to make sure you're really mashing at 152 and not 158 for instance?
Your volumes - I've struggled with this in the past as well, and BeerSmith is no help in this area although I love the program. One thing that tips me off to this being at least part of the issue is your comment about entering the recipe and being so far off the calculated / expected OG. Below are my notes on using BS. Note that I target
6 gallons at the end of the boil.
- Set batch volume to 6 gallons with no trub / chiller loss
- ignore the fact that BS *** defines batch volume as what goes into the fermenter ***
- BS calculates a value in the loss to trub section as an increase in the boil volume and doesn't factor that as diluting your wort.
To this end, with the steps above you're essentially taking that quirkiness out of BS.
Also, you'll want to double check your equipment settings for your boil off rate and make sure it matches what you're typically seeing on brew day. Tied to that, you'll want to see whether you have the "Calc boil volume" box checked in your recipe which is going to factor in that boil-off (and as seen above trub losses) into the starting boil volumes.
The nice thing here is that you can copy a recipe and then play around with those settings to see how all these things affect the calculations. It takes a bit, but once you have BS set up to match your process and equipment performance (and account for they way it calculates things) it really does work great.
Another thing - for the OG in the recipe not matching BS, double check your entry of grains and assumed efficiency and boil-off. Most recipes assume a given efficiency (generally 70%) and also assume a 1 gal / hr boil off rate. Those two things alone if not represented during initial recipe entry can throw it off. I work to make sure the recipe is close in OG (within 2-3 points) and bitterness (within 5 or so IBU - make sure to pick the right formula!) with a generic equipment setting first that matches their assumptions. That way I know it's entered right. Then I pick my equipment which will change the efficiency and other variables and throw things off a bit. I then can work to up the grain or whatever to get it back in line with the target recipe and at that point it's now tailored to my system.
Also - one last thing. Another "quirky" thing I found with BS is that if you change your equipment profile any recipes using that profile are not automatically updated. You'll need to pick another equipment profile in that recipe and then change it back for it to reflect the changes. This actually makes sense since past recipes / brew days stay reflective of the equipment used at that time. Something to take into consideration though if you're playing around with your equipment profile. As a tip, you could set up a copy of your existing profile and label it something obvious so you can toggle back and forth between profiles to see the effect it has on a given recipe.