I went through this over and over again since I lost the first 25 pounds, almost 2 years ago now. I've been maintaining that weight loss but not in a steady way. I've been as low as 151 and back up as high as 168 in the in-betweens. I'm finally getting everything back under control and making a final journey to my goal.
Over those two years I discovered something about myself: I was self-sabotaging. Why? I think it has something to do with a deep-seeded fear we all have. Once we're at goal, what if we're still not happy with our size? What if, now that we're rid of the physical thing we hated about ourselves, we find that we don't like who we are
as people? What if being at goal doesn't meet our expectations? What if people don't react to me any differently? What if they do? There are all sorts of things I think we all worry about, and I think for a lot of us, as much as we hate being fat, our fat is our security blanket. It's a buffer between us and the rest of the world. It's our easy excuse for why things don't go our way: He didn't like me because I'm fat, She's only treating me that way because I'm fat, My husband/boyfriend/mother/father would love me more if I wasn't fat, I didn't get that raise because I'm fat...etc. Once the fat's not there, we can't delude ourselves about things so easily.
Losing weight isn't about eating right and exercising, it's
much more an emotional journey. Eating right and exercising are a very small part of the battle--the battle for health is ultimately fought in your mind.

It took me almost two
years after losing the first 25 to stop the cycle and be determined enough in my own mind to get my weight back down from 168, and achieve my goal finally.
I'd re-evaluate yourself: Why are you going off plans on weekends? Are you afraid of success? Are you upset or depressed?
I don't think your cravings are necessarily physical--they're emotional, and I think to figure that out you really need to delve deep. I'm sorry if this was kind of long and overly philosophical for a Sunday morning.