When having similar issues with Starwoods the reason ultimately came down to the fact that my name and address was not absolutely identical in Amex and SPG - the later had the diminutive form of my first name and a comma in my address.
I dont know if BA are as sensitive to matching details but its where I'd start. Certainly with SPG there is no actual "link" until the first successful transfer, before that its simply a case that AmEx hold your membership number