Venu! at last I've found someone who does more method chaining than I do!
Seriously, you might want to break some of that code down into smaller sequences. It makes it more readable, and if you're using a debugger it's easier to follow the data. Nothing is more annoying than a NullPointerException that could have come from somewhere in a sequence of method calls, but you don't know which method call returned
null.
There's a "Code" button on the JavaRanch message editor that can help make your code examples more readable. I've edited your message to include it.
The selectOne/SelectMany
JSF controls cannot take a simple array or list of Strings. That's because there are 2 separate data elements that go into the generated HTML <SELECT> option elements - one for the display value and one for the returned data value. So you have to build up a collection of JSF SelectItem objects to serve as the display model for those controls.
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.