I honestly was kind of skeptical on using a P2Pool because of what was required to make a server. After reading further into it and realizing I can pick a node in P2Pool based on the ping, fee, and uptime. I picked one with a low ping, .5% fee, and uptime of over 30 days for my primary mining pool. You simply just copy and paste the address into your mining config for cgminer/vertminer, like you typically would.
If you switch to a p2pool pool try lowering your intensity by 1 or 2, you will get much less rejects resulting in a higher hashrate.
If you are running a single thread/card (-g 1) try this
7850 normal -I 18 p2pool -I 16
7950 normal -I 18 p2pool -I 17
270 normal -I 18 p2pool -I 17 or -I 16
290(x) normal -I 20 p2pool -I 18 or -I 17
So slower cards need to lower intensity more. Why the 290 needs a lower I i don't know though.