Before you call BA, i would go to ba.com and to 'manage my booking', then to 'e-mail print e-ticket receipt'. You will need your card number, if you can access your eticket receipt which shows the ticket number on '125-XXXXXXXX' then aok. The ticket number also should show in 'print/view intinerary', but the eticket receipt will also show the card number the booking was paid with. Just to check, it is issued as an e-ticket not a paper ticket isn't it?
Also, if the status in the booking on the itinerary shows as 'booked' as opposed to 'confirmed', call BA and ask why.
Before phoning BA, i'd phone your CC company just to check that there's no amount that hasn't yet appeared on your statement. It is often the case that charges take between 5 and 10 working days to clear on my statement. Being Christmas, it may be that it just hasn't been paid to BA yet; they have to wait for merchant services to pay them and it is calculated on working days. Just a thought, it's very unlike BA NOT to charge!! Maybe it is a belated Christmas gift.
Good luck, I'm sure it's just something simple i.e.an agent having a bad day and incorrectly entering something simple into the system. From what I understand of the BA system, the agent's screen looks somewhat different when making a booking than the simple ba.com, I'd imagine there are a few screens to pull up in the booking process and some code hasn't been entered somewhere. Of course, I am talking with no knowledge of the system and I am probably completely wrong!
Good luck again