>So it works fine and I get a table for each Limb node
match="/Limb" will only match a Limb element at the outermost level of the document. No such element exists in your source, so I can't see how you get any output at all.
>I want to make it such that the /Limb template outputs only if at least one child <Value> node has a 'Left' or 'Right' value other then empty string.
Use
xsl:if test="Value[string(@Left) or string(@Right)"
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference