Attached is a procedure for creating PM Programs using task templates. One thing that tripped me up was having to do a revision on the generated PM Actions if it was necessary to update the Start Value. Other than that and not trying to add Grouped & Merged into the mix, PM Programs function pretty well. I suggest not trying to use the PM Replacement functionality on a PM Program, but let the system generate multiple work tasks when they align.
Please let me know if this is helpful as well as if you see any errors or omissions or anything I need to clarify.