Puppet defined resource with cron resource

The problem here is this:

weekday => "${cron_weekday}",

You are basically converting your array to a string.
Change it to:

weekday => $cron_weekday,

And then call pass the parameter like this:

cron_weekday => [2, 4],

And of course do the same for the other variables too.