The problem is the way you sample trials at the <block> level. E.g.
/trials = [1-11=noreplace(BLACKCompLowPL, BLACKInCompLowPL, WHITECompLowPL, WHITEIncompLowPL)]
means sample 11 times (randomly without replacement) from a pool consisting of 4 elements in equal proportions. That, of course, can't work out mathematically, since there is no way to do that (11:4 = 2.75); there can be no such thing as 0.75 of a trial. As a consequence, the pool that is sampled from is larger (each element is in there 3 times) and some trial elements will occur more often than others. A given <block>'s trial selection pool is completely independent of every other <block>'s selection pool, i.e., you have no guarantee whatsoever to end up with the desired amount of trials per type across all blocks.
That, in turn, means that some stimulus elements (here <picture> elements) may be displayed more often than others and more often than they have items -- the consequence is that you see stimuli repeating or some items not being sampled at all (because too few trials displaying the given stimulus have been run).
You'll have to amend your <block>s' trial selection pools accordingly.