I think I found what's wrong. Though you can set a string to Person's OID in ui/db rules you can't use [Person;OID] in sd_dataform. You can however create a custom text field (let's name it object_id) and set it to Person;OID through UI/DB rules. Once object_id get its value you can use it with sd_dataform.bat
Just Modify "+Assignment.To person=[Assignment;To person;object_id]"
object_id is unique because OID is unique. Make sure however through roles that only the administrator should have write access on object_id