I will respond only to the A and B dialogue, because A and B don't relate that well, as Pieanne says.
First of all, 'for ages' generally suggests a period longer than three weeks, (yes, occasionally, such phrases are used hyperbolically).
So B, here, is not responding to the idea of not having been seen for ages. If A had said, "I haven't seen you for three weeks. Where have you been?" The proper grammatical answer for B would be, "I've been in Malta."
However, when A asks, "I haven't seen you for ages; where were you?" (the implication is where were you for all that time?), then B should, at least, say 'I was in Malta for a three-week holiday.' But, because 'for ages' is more than three weeks time, B should have more to say, like, "Before that I was in...", or "After that, I was..."