I love Sanji just as much as everyone else, I adored his LA portrayal, and I like all his backstories. He's a great character, one of my favorites. But I feel the writer and producers keep trying to "flanderize" him, and it just disturbs my enjoyment of the show sometimes, he had me cringing on Momoiro island, back on Sabaody too and Fishman island was a pain. Sometimes I was just "get out of the screen Sanji and let me enjoy the scene in peace". Which is terrible because I LIKE Sanji, he has so many good things to offer.
So the headcannon is basically me taking revenge on him for all the anger and annoyance I felt during his scenes. It's a one-sided ZoSan/SanZo, because I will NOT let him have Zoro after everything. It starts with Zoro having a little crush on Sanji pre timeskip, and Sanji being his usual annoying self around women, Zoro's crush solidifies after their dynamic shift in long ring long land arc, but Zoro still keeps quiet because that's just how he works. The events in W7 and Ennies Lobby make him a little more smitten, Zoro is still a "brute" with no romantic experience and just a couple braincells he has to share with Luffy, so his idea of being nicer to Sanji because he likes him doesn't stand out from his normal behavior (he thinks he's killing it though). But his crush ends up fading, and he ends up seeing Sanji in a more familial way, Sanji is still really important to him, as is the rest of the crew, he just doesn't feel the urge to kiss him anymore. And part of the reason that led him to feel like this was Sanji's extremely exaggerated behavior around women.
When Thriller Bark comes it's Sanji's turn to feel something, in his case it's just admiration at first. He admired Zoro before, his dedication, his drive, his strength, but after the "nothing happened" scene everything he feels is increased, he's not in love yet, but he already feels differently. He also feels guilty for not being the one making that sacrifice.
After Sabaody and the whole showdown with Kuma and Kizaru, Zoro goes to Kuraigana and gets entangled with Mihawk. And (hear me out) Mihawk is charming, he's not trying to be seductive or get with Zoro in any way, he's just graceful and elegant in his everyday life, every move perfectly controlled and purposeful. Zoro likes to watch him, even if he's not going to admit it.
On Mihawk's side, he enjoys being Zoro's focus and gets annoyed when he makes positive comments about the strength other people he fought had. He admired Zoro's tenacity and his loyalty, likes to see him progressing with his training and, most importantly, he has an almost sick sense of satisfaction knowing he's Zoro's final GOAL. He'll be the one thing waiting for him at the top, the one thing he's always running forward to.
To sum things up, they end up in a relationship, maybe a year or so after the beginning of timeskip. And they spend quite a lot of time together outside of training, with or without Perona's company. They don't have a title for anything, they're just enjoying each other's company, and they make each other no promises. Mostly because of the kind of lives they live, their relationship is really intense and they can bring out the best and the worst in each other, Mihawk fueling Zoro's willingness to put EVERYTHING on the line to get stronger, but also him giving Zoro a bigger sense of calm and self assurance he'll carry with him post time skip.
I think this headcanon would tie nicely with #1 and Mihawk giving Zoro his red sash.
Back to Sanji, when the crew is reunited again he just can't stop noticing Zoro. He's bigger, more muscular and walks around with his chest open. Sanji should not be feeling anything, because he's a Ladies man, but he just can't stop noticing. So he increases his weird behavior around women a lot in Fishman island, partially because he's compensating, partially because of the pretty mermaids. He also starts cooking things that pair well with alcohol and leaving them in the fridge. He's not doing this to impress Zoro or to get with him (it's not even a possibility in his mind yet) he just wants to do it.
Whole Cake was a wild ride because it's when Sanji starts getting aware of his feelings, he constantly compares his brothers to Zoro, and after his confrontation with Luffy he keeps thinking about Zoro's reaction, what Zoro would think of him in this situation, and what he thinks of Sanji getting married. It takes Judge making a mean comment about gay people for Sanji to be like "You're right, that WAS an option all along" and if Judge hates it, it's probably a good thing. But then he remembers it's just one more thing he gave up to keep his real family (Zeff and the Strawhats) safe, so he just chooses to focus on Pudding.
When he finds everyone again Zoro is just looking the best he has ever looked his entire life, the Ronin life in Wano really agrees with him. He keeps debating with himself about what to do, he's already aware of his feelings but can't bring himself to act on them. After the happenings in Wano, Sanji finds himself with lots of excuses to go around Zoro when he's training shirtless. When they finally get to Egghead (I haven't watched it yet) they are left with S-Hawk and S-Snake (don't ask me about the others, I don't know) so they have to find a place for them. Luffy contacts Amazon Lilly and they agree to take S-Snake, but S-Hawk is another matter so Luffy tells Zoro to call Mihawk. Luffy just knowing stuff he shouldn't without explanation is tied to another headcanon I have. So Zoro just calls Mihawk and says something like "Hey, how fast can you drop everything and find me? I have something for you" and Mihawk is just "on my way". Some people on the crew are completely flabbergasted, Robin doesn't even blink, as if she's known about this all along lol, and Sanji gets a sense of crisis, the dread pooling down his stomach.
When Mihawk arrives he's surprised with the presence of S-Hawk and the Strawhats are like "congratulations! it's a boy!" He recovers surprisingly fast and starts making plans to take them both back to Karai Bari. They all have a party about it, because of course, and Mihawk is invited. He of course finds a way to be alone with Zoro for a couple minutes, and compliments his Egghead outfit, especially the pants lol.
Sanji ends up *accidentally* spying on them and sees Mihawk flirting softly with Zoro, who looks like he's completely used to that. That makes him feel really bad, once because it's someone else flirting with the guys he has feelings for, and second the last time he saw these two together Mihawk sliced Zoro's chest open. He almost died and Sanji got really scared for him. He's jealous and resentful of the fact Mihawk has the gall of flirting with the guy he almost killed once. But, fortunately they don't seem to have a relationship yet, so he still has a chance. Right?
After Mihawk and S-Hawk leave and before they head to Elbaf the Strawhats have another little party and they are making a game of questions and answers, while Sanji goes back to the kitchen to grab something someone, most likely Nami or Ussopp, starts grilling Zoro about his love life. So Luffy says Zoro already has a boyfriend, to what Zoro responds he doesn't, and Luffy counters "Does your boyfriend knows that?" and it starts a conversation about Zoro's previous relationships and he confesses that he used to have a crush on Sanji in the beginning, but he got over it. And admitted to having something with Mihawk, but that doesn't stop his goals of defeating him one day.
Sanji ends up overhearing the conversation, and understands he won't get a chance with Zoro. It's mostly just him being sad about it and Zoro being his "one that got away" even though they sleep in the same dorm room. I want him to be SAD sad, regret the fact he didn't return Zoro's feelings at the time, to keep thinking about burying his face between Zoro's titties and never being able to.
Only ungodly amounts of angst and unreturned feelings can give me catharsis about the way he annoys me onscreen sometimes.