As citações nesta linha provavelmente estão causando o problema:
service {"$ntp_services":
Usar "" contendo uma variável criará uma string com a variável expandida dentro dela. É provavelmente por isso que o Puppet está reportando um único serviço com o nome [ntpd ntpdate] (ou seja, uma matriz) em vez de dois serviços diferentes.
Altere para:
service { $ntp_services:
e isso deve passar o array original, gerando um recurso por item.