Yes, just use global variables to gather up your message text, then merge it into a text field. Then that layout can be printed with any text.
In layout mode, make a text box, under the Insert menu, you'll see "merge variable", when you merge a variable it looks like this on a layout:
Then all you need is a script to set $$LetterText:
If [ condition 1 ]
Set Variable [ $$LetterText ; "form1" ]
Else If [ condition 2 ]
Set Variable [ $$LetterText ; "form2" ]
Else If [ condition 3 ]
Set Variable [ $$LetterText ; "form3" ]
Go To Layout [ form print ]
Go To Layout [ original layout ]
Set Variable [ $$LetterText ; "" ]
So your script takes care of figuring out which form text to load, goes to a printable view to print it, then clears out the form text when done.
Add as many conditions as you need, and make each "template" as dynamic as you want.