I can't prevent items like snowballs and xp bottles to be thrown to entities by cancelling PlayerInteractEntityEvent. Also, cancelling ProjectileLaunchEvent does not make the trick for me as I need players to keep the items in their inventories.
Aside from PlayerInteractEvent has the same problem, but is looks like you have to right click a block with your hand before and then to an entity with a throwable item (I haven't looked too much into this).
I'm having this issue with MagicBottle, specially using PlayerInteractEvent, but the issue can be easily reproduced by just cancelling the event and throwing a snowball to an entity.