sì, ho notato e ora ho risolto.
non salvavo gli utenti sulle altre tabelle (3 totali, quelle 'aro').
per chi avesse il mio stesso problema questo è il codice dopo aver creato i dati necessari (visto che il "non è così che si fa" non è proprio utile per la soluzione...)
$query = "INSERT INTO #__users (id, name, username, email, password, usertype, block, sendEmail, gid, registerDate, lastvisitDate, activation, params) VALUES (NULL, '$username', '$email1', '$email', '$password', 'Registered', '0', '0', '18', CURDATE(), CURDATE(), '', '')";
$db->setQuery($query);
$result = $db->query();
$query2 = "INSERT INTO #__core_acl_aro (id, section_value, value, order_value, name, hidden) VALUES(NULL, 'users', '$id', '0', '$username', '0')";
$db->setQuery($query2);
$result2 = $db->query();
$query3 = "INSERT INTO #__core_acl_groups_aro_map (group_id, section_value, aro_id) VALUES('18', '', '$aro_id')";
$db->setQuery($query3);
$result3 = $db->query();