This isn't really template related, it's a funky Chrome quirk that manifests sometimes. It'll do the same for other element tags under conditions that are virtually impossible to reproduce, but the actual object content is never affected. It just sometimes grabs the toString() serialization, and sometimes the object serialization.
However, as Andbdrew points out, the template tag is still a draft element, and we're far from any decision on how it should be user properly or how to access them, so given how your example code uses it, I'd recommend just using a <script type="text/template">...</script>
element instead, and selecting it with document.querySelector("script[type='text/template']");
rather than using an experimental element =)