Using different methods to "give" things to other players gives you different results (correct me if I remember any of this wrong).
a) If you click on a player and choose "give" from the menu, then select from that enormous screen of stuff, you get 1/10/20/30/all (where 10/20/30 is different if you don't have so much), and "all" means only those in the particular stack you selected. This seems to work fine.
b) If you drag an item onto someone to give, you get the usual 1/10/20/30/all option. However, here "all" thinks it means the total number of that item you have in inventory (keep reading to see what I mean).
This method is very buggy. Let's say I try to give Lellie all 200 meat I have. My local chat says "You gave Lellie 200 meat." Lellie's local chat says "larky lion gave you 200 meat." However, Lellie really only gets 60 meat, one full stack. The rest stays in my inventory. Pretty sure it gets moved to leftmost spots, as if I dropped and picked up again. (I am 90% sure I remember this correctly.) Thus, if I am looking at a middle bag where the meat came from, it looks like it all disappeared, though really it's just in my first bag now. Takes me a while to figure out that Lellie only got one stack of meat, and I still have the rest. Very frustrating, and the first time or two, we thought some items had vanished.
So, it seems like the game is only set up to "give" one stack at a time, and the dragging method should be updated to reflect this.
Edit: I should add that none of the weirdness is due to lack of space in our bags. Plenty of room when trying this.
BTW, want to give more than one stack at a time? You can get around everything I said above by using the trading menu choice instead of the giving menu choice. Trades can be one sided, i.e. essentially "gives". Plus, trading gets you badges if you do enough of it.