So, I just have to throw in my 2 cents about this entire OQ/Marian mess.
I’m surprised that no one has considered this seeing as how the whole scene in front of Granny’s went down.
Marian called Regina a monster, then she pretty much accused Robin of putting HER (she didn’t use the word our) son in danger by letting him near said monster and then she grabbed him and ran off.
The next day we have Robin breaking up with Regina. For me, and I’m not trying to make Marian a villain or a bitch here, it would make a lot of sense that Marian indirectly used Roland as leverage. Making sure that Robin remembered his vow (seeing as no time has passed for her) and that staying with her included staying with Roland.
Robin of course would choose Roland above Regina just like Regina would always choose Henry above Robin.
Now as to why didn’t Robin tell her that it’s because of Roland: First, it would be cheap to use his son as an excuse and also using his son would probably be something that Regina, although hurt, would understand and couldn’t really hold against him because she once told him that nothing is worth the loss of a child (not even her heart).
Another reason: Robin didn’t want to get off easy because in that moment he hated himself for hurting her like that and probably felt that he deserved her disappointment, anger and even hate.
"There absolutely will be, probably," said co-creator Edward Kitsis, "but it won’t be in the first half of the season." Don’t fret the wait, though. All signs point to Robin’s past being high on the writers’ list of priorities. "It’s something we’re excited to explore," added fellow co-creator Adam Horowitz.