Механика Битрикс24 сложнее чем вы описали.
Дело в том что вы не назначаете конкретные права конкретному пользователю.
Итак, с чего надо начать?
В Битрикс есть пользователи, каждый пользователь наделен некоторым количеством "Access codes" (сокращенно AC, иногда они называются ролями, общими ролями, кодами доступа, пользовательскими кодами и т.п.). AC в частном случае если комбинация букв и цифр, например U1 - означает user ID:1, G2 - пользователь принадлежит к группе ID:2 и т.п.
Один пользователь может обладать множеством таких аттрибутов.
Битрикс24 это надстройка над платформой, основополагающем модулем, наряду с CRM является Интранет, который обеспечивает орг.структуру. Это добавляет новые код IU123, где IU - расшифровывается как Intranet User (сотрудник) ID:123 (т.е. пользователь с ID123, который находится в орг.структуре), D1 который расшифровывается как Department 1 (подразделение с ID:1, т.е. пользователь состоящий в подразделении ID:1) и DR1 (Department recurcive, вложенное подразделение в ID:1 или пользователь который состоит в орг.структуре и вложен в подразделение ID:1)
Теперь поговорим про CRM.
В CRM существуют права, например право на добавление сделок, право на чтение сделок, право на изменение контактов и т.п. У каждого права есть значени "Нет доступа", "Свои", "Своего отдела" и т.п. Комбинация прав называется Ролью (лучше говорить CRM Роль чтобы не путаться).
Каждому Access code назначается своя роль.
А пользователь соответственно получает максимально возможные значения прав из доступных ему.
Т.е. предположим что вашей задачей является "Выдать роль ** сотруднику ID:1", тогда вам нужно обратиться к CCrmRole и использовать SetRelation($arRelation)