Mixed property check will fail on false positives because of using -match.
for example, IsResource will match ResourceCapacity, which are exclusive to two different cmldets.
Fix is probably to break down the query into individual properties, and then use -eq instead of -match.
for example, IsResource -eq "True" would break down to an array of 3 terms:
IsResource
-eq
"True"
Then check each against the list of restricted properties