Solution: Derek was the culprit.
Looking at Brian’s statement if it was Charles, then Brian was lying in his first statement, which makes the second statement true. Which would mean that it was both Charles and Alan. So it can’t be Charles.
Which means Derek was lying in his first statement, which makes the second statement true. Therefore it can’t be Alan.
So Eric’s second statement must be false, meaning his first statement was true, therefore it was Derek.