McKenzie, 31, has signed a one-year deal after leaving Coventry and 20-year-old Holden arrives on loan from Welsh side Rhyl until December with a view to making a permanent switch.
Striker McKenzie recently returned to action after a lengthy spell on the sidelines nursing a ruptured Achilles and, having come to the end of one-month deal at the Ricoh Arena in which he proved his fitness, was offered terms until the end of the year, when the situation would have been reassessed.
However, McKenzie rejected the deal in favour of a deal at The Valley until the end of the season, and he is disappointed to be moving on having not been given the length of contract he was looking for.
"I have worked really hard to get back to the levels I am at. Anyone who knows me will tell you that I am a good pro and I feel the club should have done better for me," he told the Coventry Telegraph.
"The manager wanted me to stay until the end of the season and all the players have said it doesn't make sense. I even agreed to halve my wages so it was not about money. I just wanted a contract until the end of the season. What's the problem? So it was out of my hands and I am moving back home."
Coventry are believed to have paid McKenzie over the summer when he was out of contract, and chairman Ray Ranson said: "It is disappointing because our medical team have worked really hard over the summer to get Leon back to full fitness and now he has chosen to go to Charlton."
Meanwhile, Addicks striker Stuart Fleetwood has rejoined Exeter on a season-long loan deal.
The 23-year-old scored three goals during an impressive three-month stint at St James Park last season and has agreed to return with the club now in League One.
And former Addicks midfielder Zheng Zhi, who left The Valley when his contract ran out over the summer, is close to joining Celtic.