Yeah, I know that multiplayer can be an order of magnitude more difficult than singleplayer. I had a
of a time with one of my items and multiplayer. I can't give you any specific help because my problem was completely different, but I can give you some general advice. You can use Main.NewText(/*stuff*/); to see what's happening on a client and Console.WriteLine(/*stuff*/); to see the same thing in the console window of your server.
For example, you could try the following inside your onPickup's first if statement:
Code:
Main.NewText("onPickup, Durability: " + ((IchorKnife)item2.modItem).durability);
Console.WriteLine("onPickup, Durability: " + ((IchorKnife)item2.modItem).durability);