Actually Xander's attitude towards vampires started to soften a little in S7 after Selfless. There was no moment of nastiness towards Spike at all after Him, in fact, he seemed quite supportive of Spike and Buffy's obsession with him. So Xander's vampire hate isn't as immortal as you guys make it out to be. Plus he had his moments before of helping out Angel and (souless) Spike.
Drew made a clever move making Andrew tell the story because we shouldn't believe every word coming out of Andrew's mouth. He's a storyteller by nature. Just look how he easily made up a story about Buffy being in Rome and Xander being in Africa when both were in Scotland.
As for Xander staying a year with Dracula, Drew retconed it into a few months.