From my short encounters with templating systems, I offer you those three terse reviews:
- Template Toolkit sucks. I don't know why other people like it, but they do.
- XSLT sucks even more. It has all the features of Template Toolkit, but you have to write them in verbose XML, without being able to output non-XML.
- I have no experience with XSL-FO, therefore it must suck even more.
If my reviews are too terse for your taste, or you crave other opinions, consider Super Search, which has many discussions of templating systems on this site. Personally, I haven't found a single templating system that suits all my needs, so I switch between HTML::Template, Petal and Template::Toolkit.