OK, looking at the patch, you’ve complicated things by combing the ‘articulation switch’ rule with the ‘playing direction’ rule - better to keep them separate, makes things far easier.
You don’t need to specify a range for Highest note in this usage case (if you do then it interprets that as ‘which notes in the chord should play’, hence why it appeared to work when played legato). Leave it at 0, i.e. the note is either the highest note or it’s not.
So for upward intervals you need something like this :-
and for conversely for downward intervals simply add the ‘NOT’ condition to the Highest note :-
You could of course do it the other way round using Lowest note, same difference, and omit the legato if required.
I would recommend putting your leg and porta instruments in separate layers, then add the CC switching Mega-trig last at the top level. In practice it’s easier to build them as completely separate patches, then cut and paste the layers into a new combined patch. This way you can test and debug each one and know they’re behaving correctly individually before combing them with the CC switch.
All easier to do then describe in words, but hopefully you get the gist.