Você está declarando o tipo de registro, tipo de coleção/tabela e função tudo dentro do mesmo pacote.
Quando você chama a função você tem que usar o mesmo tipo, daquele pacote.
Mas não é. Ele tem a mesma estrutura - campos e tipos de dados - mas não é o mesmo no que diz respeito ao Oracle. A Oracle precisa saber que exatamente o mesmo tipo está sendo usado, em parte para que possa acompanhar as dependências entre os objetos.
Seu bloco anônimo precisa se referir aos tipos de pacote, em vez de declarar seus próprios - semelhantes, mas conflitantes - tipo(s):
DECLARE
managers hr_package.managers_table_type;
BEGIN
managers := hr_package.managers_multiple_departments;
END;
Como bônus, envolve muito menos digitação e significa que você não precisa gerenciar tipos duplicados.
Isso também significa, no entanto, que as declarações de tipo devem estar na especificação do pacote - o que é o caso de qualquer coisa que você queira que seja visível publicamente, é claro.