Well, the rotation part was a convoluted mess, so I deleted it to start over. This script extends ARVRController, and here is the relevant part:
Pick-up Function
if !grabLatch and controllerR.is_button_pressed(2):
grabLatch = 1
grabbedLoc = grabbed.get_global_transform().origin
sceneContainer.remove_child(grabbed)
controllerR.add_child(grabbed)
grabbed.set_translation(to_local(grabbedLoc))
if grabLatch and !controllerR.is_button_pressed(2):
grabLatch = 0
grabbedLoc = grabbed.get_global_transform().origin
controllerR.remove_child(grabbed)
sceneContainer.add_child(grabbed)
grabbed.set_translation(grabbedLoc)
If there was a "to_local" function for rotation, I would be set, but, no.