I expected you to do it with Racers family that includes player and cpu, that will reduce risk of bugs. Also you should drop the trigger once and use the variable as the condition as mentioned above, either position=0 or finishedrace=false will do. Should be one easy line/event for everything.
Does it stop at 4 when the player finishes and 2 CPU? It is always 4 ? Make the single event as I described with the fam and you won't have to track so many increases to the variable. The results screen is new, you can add debugging to find out if that does anything, maybe the picking is off. Reduce opacity of Racers that are finished to clearly determine who has finished and compare with the variable, do they match, and do this without the results screen first to find the cause.