As suggested earlier the best thing to do is remove as many variables as possible. A potential major one here is temporal variation in the water's alkalinity. This can easily be removed by removing all the alkalinity which is simply done by titrating the water itself to mash pH. A much simpler approach is to realize 0 alkalinity water by using RO water. Add calcium salts in equal amounts to the extent of perhaps 2 mEq/L each of sulfate (96 mg/L) and chloride (70 mg/L). This will give you 3 mEq/L (60 mg/L) calcium total which is plenty. You will adjust the sulfate and chloride levels upon tasting the finished beer adding more or less of each dependent on whether added sulfate/chloride improves it or degrades its flavor.
To hit pH 5.4 with the proposed grist you will need about 3% sauermalz (6 Oz) but this is an estimate based on malts similar to the ones you are using as I don't have data on the actual ones you are using. With the popular brewing spreadsheets you get errors from modeling the malts by their colors which is clearly inadequate but gets you a ballpark number in most cases. In my calculations you get errors from modeling your malts as ones that I or others have measured which is clearly inadequate but gets you a ballpark number in most cases. This is why it is so important to do a test mash.
To hit pH 5.4 with the proposed grist you will need about 3% sauermalz (6 Oz) but this is an estimate based on malts similar to the ones you are using as I don't have data on the actual ones you are using. With the popular brewing spreadsheets you get errors from modeling the malts by their colors which is clearly inadequate but gets you a ballpark number in most cases. In my calculations you get errors from modeling your malts as ones that I or others have measured which is clearly inadequate but gets you a ballpark number in most cases. This is why it is so important to do a test mash.