penso di aver capito il problema,
Praticamente di base joomla non fa un bind della form con i dati in input ma si limita soltanto a validare campo per campo con i dati che gli passi, se guardi il model del com_users profile vedi che lui fa un loadData dove carica i dati dell'utente
$userId = $this->getState('user.id');
// Initialise the table with JUser.
$this->data = new JUser($userId);
e ci fa un bind della form,
se estendi jControlleForm invece gli dice di suo non caricare nessun dato nella form al momento del salvataggio e se usi jmodelAdmin ha la sua funzione getItem per costruire la form che viusalizzi ma non viene richiamato al salvataggio.
per frala breve penso che risolvi semplicemente aggiungendo alla funzione del model
getForm($data = array(), $loadData = true)
dopo il controllo
if (empty($form))
{
return false;
}
questo codice
if(isset($data['id']) && (int)$data['id'] > 0)
$form->setValue('id',null,(int)$data['id']);
ti carica nella form l'id visibile dopo nella rule che hai fatto.
lascio a te capire se questa ggiunta puo generare problemi di qualsiasi tipo