OK, I have some answers now. Not completely solved, but progress:
For the phone, the K9 client works much better with imap than with pop for gmail. I don't know why, I remember gmail pop working ok with it previously. But imap is working really well. Part of it has to do with the complexity of K9's configuration of folders (1st/2nd class).
Secondly, for the desktop Bat client, I believe somehow my antispam sniper plugin got broken or something, because it was detecting a lot of messages coming in with blank header fields, so the messages were sent to spam. in the spam folder, the full messages were there. weird. i don't know if this has something to do with imap and only reading header fields or something. whatever it is, it's not fixed yet, but the problem is with antispam sniper.
The other problem has something to do with gmail. When a message comes in, it shows up in the inbox. When you reply to it, it disappears from the inbox, and now both messages (original + reply) show up in the "sent mail" folder. I don't like that. I want the original in the inbox, and just my reply in sent mail. I'll have to check that out.