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.