You can find the full source code for this website in the Seam package in the directory /examples/wiki. It is licensed under the LGPL.
JSF runs the converter and loads the entity from the persistence context; JSF runs any validators, and adds it's own - that the selected object must be in the original list; the validation fails as a new object has been loaded from the persistence context.
A more detailed explanation can be found on Drop-down boxes with entities and page scope.
You've got two options:
Which approach should you take? The second solution is the simplest to understand but sometimes it is hard (or not possible) to define a natural key so you'll need to use the first solution.
The knowledge base article Drop-down boxes with entities and page scope describes a feasible workaround.