Regarding only the CO/BTN steal: If you are getting a lot of people to flat you then you should tighten up your stealing range a little. It doesn't have to be a lot, just a little tighter than them.
Additionally - if you are trying to steal don't get silly post flop. The steal is profitable by itself, so if you start throwing out cbets then you lose the immediate profit from stealing. An easy adjustment to make against people flatting you is: steal, value bet the flop with TP, value bet turn with better than TP, value bet river with your strongest range. If it turns out they are calling you down light then you can adjust there as well. I think its important to not get too crazy against the calling stations who flat your steals. It should be easy to beat them, if you quickly shift to value betting post flop.
In regards to playing out of position: yeah it sucks. So you have to not do it much. Playing a tight range is going to be beneficial to you. OOP is really more situationally dependant than being IP. You need to hit a board fairly hard and then extract value as you are able. When your opponents don't know how to hand read, and they don't know what hand ranges you are playing, you just kind of bet when you have it. The best thing you can do is work on hand reading, and determining their ranges. If you can identify what hands they should have, then you can more easily choose to bet, rather than check, the river. I would also think check calling TPGK against a reg is a bad idea most of the time. Playing tight helps to solve that problem, since you are playing a stronger range earlier, you shouldn't be having kicker issues.
Thats my basic advice. Play tighter, value bet, and fold more than you do.