1. In line 80 you need to pass item number (item's position in the array, or InvCell.order number) to the "DropItem" function.
For this you need to pick the correct cell, the one which is currently selected.
Similar issue with "Use" function - you are passing Collectibles.AnimationFrame to the "SelectItem" function, which is incorrect, because by default Collectibles refers to all items. You need to first pick the correct instance of the Collectibles family first, the one which is selected.
2. Same issue - you need to pass item number to the function.
3. I tried that and it worked for me. The game didn't pause (because Wait doesn't actually pause the game), but the lines "Jim takes the note and reads it. etc...." appeared on the screen.
4. If you pick up the note before the handkerchief, they end up in the same inventory slot. Not sure why.
You can see it in debug mode - both sprites are in the second cell.
I told you I don't like this inventory system. Integrating it into your game made it even more complex, it's now really hard to understand what's going on.