Opa! Bom dia, Lucas. Tudo certo?
O problema em questão está acontecendo pois o seu TreeSet não está recebendo por parâmetro uma classe Comparator.
Como no exemplo mostrado pelo professor, a instância de seu Set de Funcionarios deveria ser assim:
// ... código omitido
Set<Funcionario> funcionarios = new TreeSet<>(new OrdenaPorIdade());
// ... código omitido
... ao contrário de:
// ... código omitido
Set<Funcionario> funcionarios = new TreeSet<>();
// ... código omitido
Se você fizer esta pequena alteração, seu código já deve funcionar. O motivo do seu erro é porque o TreeSet é uma implementação de Set, que ordena automaticamente os valores nele adicionados. Entretanto, para o TreeSet fazer a ordenação, ele precisa compreender como que essa ordenação deve ser feita, e é aí que entra o seu Comparator.
DOCUMENTAÇÃO DO JAVA:
Constrói um novo conjunto de árvore vazio, classificado de acordo com o comparador especificado. Todos os elementos inseridos no conjunto devem ser mutuamente comparáveis pelo comparador especificado: comparator.compare(e1, e2) não deve lançar uma ClassCastException para nenhum elemento e1 e e2 no conjunto. Se o usuário tentar adicionar um elemento ao conjunto que viole essa restrição, a chamada add lançará uma ClassCastException.