pH was just fine, water was adjusted and salts were added for proper mineral profile.
Beta content of the malt? You have my ears pricked. What does that mean exactly?
Beta amylase, but what I mean is how can one know the beta content of malt? I just buy at LHBS by the pound. Good Marris and Munich, is there someplace you are supposed to check for Beta content?
Diastatic power of malt identifies it's ability to convert starch to sugar. What it doesn't indicate is the proportion of beta (130-150F) to alpha (140-170F) enzymes. Sometimes alpha is indicated in malt spec sheets, but not always, and you may be able to determine the level of beta available from that value. When neither level is known then you need to consider the malt itself and how they are traditionally malted in their respective countries.
Maris Otter = base malt that can usually self-covert, but not much extra diastatic power for other non-diastatic malts. Well kilned malt to develop the biscuity character. Higher temp kilning reduces the distatic power to a level that's sufficient for self-conversion. Higher temp kilning denatures beta quickly, whereas alpha is more stable at the kilning temps.
German Munich = very similar in nature to maris otter with the exception that Munich I (i.e. Light Munich) retains more diastatic power and likely more beta and alpha. Dark munich (Munich II) contains about enough diastatic power for self-conversion, but not much else. Also, the dark variety is kilned for longer and those higher temps that denature beta more quickly. Dark munich will contain lower levels of beta than light munich.
crystal 40 = non-diastatic (i.e. no alpha, no beta)
carapils = non-diastatic
chocolate malt = non-diastatic
Given the malt makeup of your brew, it would leave me to believe that you simply lacked enough beta for producing a highly-fermentable wort. Short of using a STA1 yeast strain (I wouldn't), or adding glucoamylase enzymes (I wouldn't) to your existing beer then I would simply enjoy what you produced and adjust on the next batch.
Aside from the knowledge gained from this, and how it might be mitigated or avoided next time, you've gained knowledge on how you can achieve a lower-attenuating wort with ingredient choice. This kind of knowledge is wonderful for those times you'd NOT like to attenuate to 80%+.
Hope this helps.