Ну, я чувствую себя глупо сейчас. После полдня попыток выяснить, почему это не работает, я наконец изучил WSDL:)
И, как ни странно, формат, в который я отправлял изменения, был неверным. Правильная структура третьего параметра в PHP выглядит следующим образом:
$data = array('fields'=>array('id'=>'assignee','values'=>array($username)));
$this->jira->updateIssue($this->jiraAuth,$issueKey, $data);
То, что сбило меня с толку, заключалось в том, что для создания проблемы нужна простая структура, подобная этой:
$issue=array(
'type'=>3,
'priority'=>3,
'project'=>'XXX',
'duedate'=>time(),
'components'=>'',
'versions'=>'',
'fixVersions'=>'',
'assignee'=>'user1',
'reporter'=>'user1',
'environment'=>'',
'description'=>'test',
'summary'=>'test',
'timetracking'=>'',
'attachment'=>'',
'labels'=>''
);
return $this->jira->createIssue($this->jiraAuth,$issue);