The behaviour is the same as in the Revit GUI. You can move the object only along a plane of the host.
Recently started with the Revit API myself, so might be wrong here. You would have to re-host your object to another object (like in the GUI). However I think this is not even possible in the API (yet). I expect that you will have to delete the hosted object and then create a new one on the other host.