Are you absolutely sure it is actually overheating? One thing to check before spending any more money: check to see if your coolant temp sender (the one that runs the gauge which is located at the back of the drivers side of the head) is original or if it looks like it's been replaced. In my experience, NONE of the aftermarket sensors read correctly; they all read high. Next time it starts rising, pull over and check the engine in multiple spots (back of head where sensor is, middle, by water pump, by thermostat, etc.) with a infrared thermometer. I also recommend an inline hose temp sensor and gauge which will give you a more accurate idea of what's going on.
Get one of these - they are cheap like 10 bucks or so: