Looks pretty good. I wrote something a while back similar to this but it schedules "rdisk" (ERD) on our NT/2000 server's and then copies the files back to a central location. My sugesstions:
Before scheduling a job the "Schedule" service needs to be running. Check it using Win32::Service.
Try using Win32::AdminMisc::ScheduleAdd to schedule jobs.
Does anyone know of a better way to get time from a windows machine other than "net time"? I've tried the Net::Time module but I couldn't get it to work correctly.