You're passing buddy to nodeCount rather than root in treeNodeCount. This would be a strange but valid choice except for one thing: binaryTreeType<elemType>::buddy is never modified in makeTree, since it is shadowed by the local variable called buddy.

Just pass root in treeNodeCount.