You're absolutely right - templating systems don't do anything that perl can't do without them. Well, not quite. Templating systems usually can offer a much more simplified view of the data. Content, with no logic. That's what templating is for.
How I generally approach this problem is to put my content in templates, and put the retrieval of data in the code. In your case, I would use the "include" facilities of most templating systems to put the common header and footer into header and footer templates:
<tmpl_include header.tmpl>
Dear <tmpl_var fname> <tmpl_var lname>,
It has come to our computer's attention that your account
is 30 days past due. You don't really want our computer mad
at you - last time it was mad at me, it conveniently lost
half my email and mangled the crap out of my automated
scripts. With you, I predict adding some zeros somewhere
in the middle of your account balance. Please pay up before
the computer sends a hitman to your house.
Thanks,
HAL
<tmpl_include footer.tmpl>
I'm really not sure what you mean by "republish" or "auto-generate perl" modes. Something tells me that you're looking for extra work with those.