Hi, Mr. Clive
As the sentence is about a single person(You need a holiday; you haven't had one for such a long time)
but as u said in the second part of the answer(because they hadn't had one for such a long time)
i feel it should be "because he hadn't had one for such a long time"
am i rite?