but one thing I don’t get… Cora HAD her heart before she met Rumpel, so why did she give up her daughter?
Cora was living in poverty. Her father was probably drinking away what little money they did have, and so they probably had barely enough to eat to keep themselves alive, let alone look after a baby. I suspect that Cora gave Zelena up to give her a better chance in life, or perhaps someone offered to buy the baby, and Cora was so desperate for money to be able to survive that she felt she had no choice. Having given up her first daughter due to poverty is what fueled Cora to have such a strangle hold on Regina and make sure she was rich. She wasn’t gonna lose another one too.