I kind of know the answer to this: because BFPO is a postal box service which is then forwarded onto the serviceman in whatever location, the system doesn't accept postal boxes as an officially assigned address. The lines prior to the BFPO number are not registered as UK addresses so there is no way to determine if it is a valid one. Its more of a traditional postal service i.e. its the same rate to send abroad to BFPO as in the UK. Its just that the BFPO address was never meant to be used as a reference point for the ubiquitous credit checking service!
You might find that other networks would also reject a BFPO number on a contract credit check as no doubt the development teams didn't forsee the need.
Best thing you can do, is register it at your UK house which avoids all the hassle. As all the billing is done online, you'll still get notifications via an email address of your choosing. Only thing you need to watch for is if you have an upgrade phone sent to the registered address, you need have someone trustworthy to pick it up.