Hi Andrew,
Apologies for not getting back to this. I'm not always able to answer questions on this list quickly, but I see no one else has gotten to this one.
The "More than one result found" error appears to be saying that somehow you have *two* WorkspaceItem objects that link to the same Item. In other words, somehow you have two entries in the "workspaceitem" table which have the *same value* in the "item_id" column. That's not supposed to be possible in DSpace, as every workspace Item should be linked to a different Item.
You should be able to find the duplicate entry by running something like this:
select item_id, COUNT(item_id) from workspaceitem group by item_id having count(item_id)>1;
That should return duplicate "item_id" values. Then, for each, you'd have to find the duplicate rows:
select * from workspaceitem where item_id=[value];
It's unclear to me why you have duplicates, but there should not be two rows with the same "item_id". So, you should delete one of them.
It's difficult to answer your other question about the "psql" role. It might be possible to ignore if that role is no longer necessary in your new setup. But, if you notice odd permissions errors, then it's possible that role is needed.
Tim