Hi Andrew,
I am finding the same kinds of difficulties as well because we are using MVVM also. I am new to MVVM, so until I get more experience with it, I have to struggle to get things working like they do in regular code behind.
I also am struggling with templates. On legend refresh event in code behind, I could set a Tag attribute on the LegendItemViewModel which would define the template key name of a template as a resource. But, trying the same code in the ViewModel, it tells me that a LegendItemViewModel item does not have a Tag attribute!! Things like that are fustrating, so I share your pain!
Paul