to be able to do that I use my own tree structure that supports multiple select and i use rich:treeNodeAdaptator to map my tree in richFaces Tree...
then you have to use 'adviseNodeSelected' and 'processSelection'
and do not use client mode.
i recommend ajax mode with ajaxSubmitSelection="true".
Or if you want to do it with nearly the code you submitted i would suggest to use type attribute to define 'normal' and 'selected' and in the processSelection function you may change the type of the node...