The invalid vector for an x only output participant pubkey is a straight copy of the one right before it. So that case never actually gets tested. An implementation that only looks at the keydata passes both.
I rebuilt it the same way as the input side pair. The keydata holds the 33 byte aggregate pubkey and the first participant key in the value is x only. Doing the same thing on the input side gives you the BIP's own input participant vector exactly. Only the hex and base64 for that one vector change.
Found this while testing a BIP 373 verifier against the vectors.