I don't have your indicator. And I really prefer to test this on a project that contains only the most important blocks. This contains trailing stop, custom indicators...
But when something works on one side and doesn't work on the other, the first reason that pops in my mind is values in Condition block. If you have X < Y and you expect both values to be for example between 20 and 100, then everything will work fine if they are really between 20 and 100. But if X is an indicator, which could give you value of 0, then guess what... when X is 0 and Y is whatever number that is bigger than 0, then the Condition is right.
I don't like block 3. It passes when there is at least 1 Buy trade. But what is in the yellow output? It doesn't mean that it would pass only if there is at least 1 Sell trade. The yellow output is the opposite of the orange output. In this case, the orange output would pass if there is no Buy trade, but it doesn't matter how many Sell trades there are. So, i will suggest to use 2 blocks from these, one for Buy and one for Sell, if needed.