I think it's a bug, and the cause appears to be that if the train doesn't stop at the current station then the current station is incorrectly believed to first in the running order of the train - maybe the code is meant to look up the position of the current station in the running order but incorrectly concludes it to be the first position, which is then used in comparing with the position of the filtering point.
For example, at Stevenage (where non-stop trains originate from King's Cross (KGX) northbound and terminate at KGX southbound):
1. As you say, filtering for subsequent calls at Peterborough (PBO) results in all non-stop trains that call at PBO in any direction. (Every non-stop train that calls at PBO satisfies the incorrect criterion to have a call at PBO at any point after the first position in the running order.)
2. Filtering for previous calls at PBO (or indeed any other station) results in no non-stop trains at all. (No train has a call at PBO, or any other station, before the first position in the running order.)
3. Filtering for subsequent calls at King's Cross (KGX), which is a terminus, "correctly" results in southbound trains only. (Northbound trains start at KGX so do not have a call at KGX at any point after the first position in the running order.)