Have you debugged your application to check if your setter actually getting invoked?
What container are you running in? What version of JSF?
When commandLink is clicked, the setter method is invoked accordingly. But the getter method is not. It is only called, if the complete page is refreshed - in this case the panel item is getting selected.
I am using Tomcat 7 and MyFaces 2.1.12