Caso o cadastro de um usuário estiver duplicado no Moodle, e cada cadastro tem inscrição nos cursos e estiver acessando, a solução seria unificar os cadastros.
Vamos supor que usuário 1 com id 10 seja o mesmo que usuário 2 com id 11. Neste caso, o processo de unificação requer um trabalho no nível cirúrgico. Ta claro que tou falando do operação em nível de SQL e PHP.
Bem vamos lá:
Nos comandos SQL a seguir você substituir id 11 para id 10, ou seja, vai transferir tudo que estiver no usuário 2 usuário 1
1) Unificar inscrição no curso
UPDATE mdl_role_assignments SET userid=? WHERE userid=?
2) Unificar status de inscrição no curso
UPDATE mdl_user_enrolments SET userid=? WHERE userid=?
3) Unificar registro de nota no quadro geral de nota / atividades
UPDATE mdl_grade_grades SET userid=? WHERE userid=?
Observação
A mesma operação deve ser feita no histórico de notas em todas as tabelas dos plugins que têm registro de nota e que registro atividades do aluno como enquete, questionário, fórum etc.
4) Unificar registro de atividades concluídas
UPDATE mdl_course_modules_completion SET userid=? WHERE userid=?
5) Unificar registro de cursos concluídos
UPDATE mdl_course_completions SET userid=? WHERE userid=?
5) Unificar registro de log
UPDATE mdl_course_modules_completion SET userid=? WHERE userid=?
6) Unificar registro de campos do perfil
UPDATE mdl_user_info_data SET userid=? WHERE userid=?
7) Outros
Faça uma mapeamento em todas as tabelas onde tiver coluna userid, processa essa operação. Neste caso o PHP vai ser uma mão na roda. Só apontei exemplos das tabelas mais comuns.