I still don't know much about arrays in construct, but it seems that the game doesn't know if the key is red or blue. It seems that it only identifies it as a key, regardless of the color. (I understood almost nothing in your file. I don't know if that's my lack of experience in using arrays in Construct 2 or lack of organization of your part)
I don't know how to do it in inventory using an array, but I'll do something like this:
Create a red key and blue key sprite
Create a variable inside these sprites that holds a value of how many was found (redKeyQuantity = 0)
If player collides with red key, adds a number to redKeyQuantity. Same with blue key, adding to blueKeyQuantity.
When player collides with a red door, check to see if redKeyQuantity is greater than 0. If yes, open door and subtracts 1 from redKeyQuantity. If not, don't let the player pass! The same for blue.
Well, that is the way I would do it. I don't know how to do it with an inventory array, but I guess the logic is the same. Maybe there's a more efficient way to do it, but I think this way is very easy to understand and not difficult to modify later if you need.