First, the reason for the differences which it is important to understand. Caculation of mash pH is quite simple if you use the proper algorithm which none of these calculators do and one of the reasons for that is that they don't have the required information about the malts that they need. Of them, Brewer's friend comes closest to doing it right because he has gathered actual data on a rather large set of malts. Were he to refine (and repeat) all those measurements he'd be using the proper algorithm
for the malts he measured. So lets say he did that. These would not be the malts you would be using because you'd buy your malts from a different maltster or even if from the same maltster from a different batch etc. So when it comes time for you to put your numbers in a spreadhsheet it has to WAG malt parameters from a list of types perhaps refined by color. It doesn't matter if the algorithm is perfect: GIGO. So all the spreadsheets are going to be wrong and, of course, you would like to know which is least wrong. That is an impossible question to answer as to do so would involve extensive experiments with thousands of brews.
Yes, there is some discrepancy as each of the programs uses a different model for the malt's acidity/alkalinity. The AJ model is robust but the answers are not necessarily better than the other estimators as I too have to guess at what the malts you are using actually are like and do the calculations based on malts that I or Kai have measured which I am guessing are closest to the ones you are acutally using.
BruN seems to lower the pH more than the others on all steps - grain, minerals, acid.
That is an observation I have seen repeated here several times.
The best thing to do is to make a test mash and measure its pH with a reliable pH meter.