What you want is not possible by standard JSF means. You're limited by the way how HTML works. The HTML <input type="checkbox">
only submits information about selected values, not about unselected values. JSF is here merely the messenger between HTML/HTTP and the Javabean model. All JSF retrieves is a collection of selected values. It doesn't retrieve a collection of unselected values.
You need to intersect the unselected values from the available values based on the selected values yourself.
Here's a kickoff example, assuming that you've a
private List<String> selectedItems; // <p:selectManyCheckbox value>
private List<Item> availableItems; // <f:selectItems value>
private String[] orderedSelectedItems; // Selected items ordered by index
then this should do, in for example an action listener after submitting the form:
orderedSelectedItems = new String[availableItems.size()];
int i = 0;
for (Item item : availableItems) {
String name = item.getName();
orderedSelectedItems[i++] = selectedItems.contains(name) ? name : null;
}