Could it be that you have only 1 cluster and 1 template in your VC ?
If I simulate that I see the same behavior.
The explanation, if you only have 1 template then Get-Template will return a TemplateImpl object.
If you more than 1 template the cmdlet will return an array of TemplateImpl objects.
Now an array has the builtin property count, while the TemplateImpl object doesn't.
The better way to "count" is like this
(Get-Template | Measure-Object).Count