All parts of the TreeViewItem (indicator, text, checkbox) are defined as one big template. Therefore customization of only one part of the template still requires retemplating the whole item.
When retemplating is applied to the treeviewitem and 20+ children in the nodes are loaded, the result is as follow: If you run that on iOS and expand a node you'll see that it crunches the UI for a few seconds and then loads the child nodes, but i also see on our application that it will crash some times and either way gives a bad feel to the UI on iOS
When we call ScrollItemIntoView to scroll to one of the nodes at the bottom of the tree the app will crash with a "Unspecified Error".
I've set it to load 150 nodes into the tree and when you click the "Test" button it will error (using UWP). If you change it to only load 100 nodes or less it should work.