I believe your problem is that you are building all the constructed lists everytime for each question. You shouldn't do that because once a constructed list is made then it is not remade again.
For example: your code
for my $i (1..5) {
RIC("SctSelect.".$i)
}
says remove if chosen for SctSelect.1, SctSelect.2, SctSelect.3, SctSelect.4, SctSelect.5 everytime. Well, the first time this runs, none of them have been made yet so it builds all of those lists right then and you are stuck with all of them containing everything.
This should work as you would expect.
What you want is to access the questions that have answers and nothing more so the code should look like this
Begin Unverified Perl
ADD ("BrandsRandCList");
my $Length = LOOPITERATION();
for (my $i = 1; $i < $Length; $i++)
{
RIC("SctSelect.".$i)
}
End Unverified
This will cause the first time to never run any RIC function because nothing has been answered yet. When the second question is hit, then it will call RIC once for .1. On the third question it will run 2 times for .1 and .2. And so on up to the end of the loop.