This was simple.... 
<rich:pickList value="#{event.sponsorDetails.sponsors}"> 
     <s:selectItems value="#{availableUsers}" var="eachUser" label="#{eachUser.surname} , #{eachUser.firstname}"/>
     <s:convertEntity/>
</rich:pickList>
Or so I thought...
@Out(value="availableUsers",required=true) private List<User> availableUsers = new ArrayList<User>();
     
        /* (non-Javadoc)
      * @see nz.co.selwynequestriancentre.action.eventsManagement.EventsManagementController#findUsers()
      */
     @Factory("availableUsers")
     @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
     @Override
     public void findUsers()
     {
          if (availableUsers.isEmpty()) {
               availableUsers = (List<User>)entityManager.createQuery("from User u order by u.surname asc").getResultList();
          }
     }
simply does not cut it!
You get a very strange error from JSF...
Validation Error: Value is not valid
What this eventually came to (possibly) is that you need to override the default equals method!
Right or Wrong I used:
    @Override
    public boolean equals(Object o) {
         return this.getId() == ((User)o).getId();
    }
This now appaered to work until I persisted the containing entity and I got a detachedEntityException.. ARGH!
So had to add:
List<User> sponsorsToAdd = new ArrayList<User>();
          for (User eachSponsor : this.event.getSponsorDetails().getSponsors()) {
               sponsorsToAdd.add(entityManager.merge(eachSponsor)); // Re-Attach the Sponsor object.
          }
This seems a very big workaround to get this to work... is this kind of feature being addressed in JSF2?
As I have not actually persisted this yet due to other problems I still have not seen this work, but feel confident.
Richfaces documentation updated.