Я думаю, что ваша проблема связана с основами работы ItemRenderers.
Обратите внимание, что ItemRenderers перерабатываются, поэтому при прокрутке списка новые создатели ItemRenderers не создаются.
Чтобы продвигать это поведение, ваши ItemRenderers должны быть строго связаны своими данными, а любые индивидуальные изменения должны быть такими же обратимыми.
Скажем, если ваш ItemRenderer меняет свой фон на красный, если определенное поле имеет отрицательное числовое значение, вы должны помнить, что тот же ItemRenderer, скорее всего, снова будет представлять положительное значение в некоторой точке.
Или, чтобы быть более конкретным; наличие оператора if, который проверяет отрицательное значение и меняет фон на красный, недостаточно, если за ним не следует оператор else, который меняет фон на его цвет по умолчанию.
Так вот, я не изучил ваш код досконально, но, судя по описанному вами поведению, это было бы моим лучшим выбором. Надеюсь, это поможет вам или кому-то еще.