Сомнительный рецепт, по сути у вас в методе OnOrderNewSendEmailHandler всегда будет проходить первое условие, следовательно $arFields['PASSWORD'] всегда будет пустым, причиной тому вызов методов всегда будет происходить для разных объектов класса CSendOrderPass.
Вобщем обработчик на событие OnBeforeUserAdd вам вобще не нужен, в обработчике на событие OnOrderNewSendEmail вам нужно по id пользователя (не помню есть ли он в arFields, но по id заказа его точно можно получить) получить его логин и пароль, после этого добавить в массив $arFields. Соответственно в почтовом шаблоне добавить вывод этих полей.
Вобщем обработчик на событие OnBeforeUserAdd вам вобще не нужен, в обработчике на событие OnOrderNewSendEmail вам нужно по id пользователя (не помню есть ли он в arFields, но по id заказа его точно можно получить) получить его логин и пароль, после этого добавить в массив $arFields. Соответственно в почтовом шаблоне добавить вывод этих полей.