(updated the comment as I start to understand the code) - that is wrong. You're registering handlers every single time a pipe is created. You want to do this in a init handler in the class BuildCraftTransport.