Further testing revealed that there is nothing wrong with what i posted here.
looks like my issue is the viewmodel itself bot being properly shared.