Проблема в том, что RecyclerView перерабатывает предыдущие представления для обеспечения эффективности.Я полагаю, что SomeCondition содержит артефакты, принадлежащие предыдущим держателям.
Так что при
itemsGrouping(pickItem, pickItemView, holder.adapterPosition)
вы должны получить pickItem и pickItemView от нового привязанного держателя.Вы должны использовать как
pickItemView = holder.findViewById(R.id.pickItemView);
Или рассмотреть возможность использования Библиотеки привязки данных
Вот хороший пример (он на Kotlin): DataBoundListAdapter
Как только вы расширяете свой адаптер до DataBoundListAdapter и переопределяете метод bind (), все внутри bind выполняется для каждой строки, поэтому вы не получите повторных результатов.
Примечание: обратите внимание "executePendingBindings ()"