Is it two triggers and one event in the pipe or two events? In the latter case, do the events share the same time stamp? Do you see two different events in the PI archives?
Aside from the root cause (which will be more tractable when we know the answers to the above questions) as a workaround you may be able to compare the timestamps of the events and ignore if you match the latest time stamp.
When I played around with EventPipes I noticed that (the default configuration) would get the method called once per each event in the queue. Meaning that if you get 5 events since the last check it would call 5 times your function instead of just once. Could this be what is happening to you?
You may look at this post for a little more information on triggers and Event Pipes and changing the values. :)