Значение в части select элемента param будет использоваться, если вы не передадите параметр.
Вы получаете ошибку, поскольку переменная или параметр $ baz еще не существует. Это должно быть определено на верхнем уровне, чтобы оно работало в вашем примере, а это совсем не то, что вы хотели.
Также, если вы передаете литеральное значение в шаблон, вы должны передать его следующим образом.
<xsl:call-template name="test">
<xsl:with-param name="foo">fooValue</xsl:with-param>