I had this problem for several years with CX up until their migration to Amadeus.
The problem is with LA (or CX in my case) and how their systems are pulling status down and interpreting it from the central OW database. This is how it was explained to me by someone at Cathay. Sadly they were never able to fix it, save for when the booking was made by a TA. Then it would pick my staus up fine but if the airline touched the booking in any way - even to move a seat - I'd be back to BAFFP.
BA can't do anything to help, you'll just have to keep beating LA.