Would something like this solve your problem, where you would load the IDs of each item into an array like %item1, %item2, %item3, etc, as well as the #findcnt into a %count variable, then use thes loaded variables in the loop, thus allowing you to do additional finditems without losing the original values:
finditem yfm
set %count #findcnt
for #findindex 1 %count
set %item . #findindex #findid
For %loop 1 %count
{
Gosub Check_Item %item . %loop ;--%1 is #findid of Item to Check
}
I would probably change the variables to something more relevant to the script, but otherwise, this seemed to work in a quick test for me?