Killian didn’t leave because he thought Emma broke up with him. He left because he couldn’t live with what he had done. ALL of what he had done. Killing David’s father, choosing not to tell Emma and then trying to erase the knowledge as if it never happened.
Yes, one of Killian’s biggest character traits is his bravery but he has more than just that! He also is impulsive and prone to making bad decisions. That’s not something that just goes away. It is still a work in progress because he’s a (fictional) human and he’s not just “fixed” in one day.
Charming just kept a secret from Snow and had his own personal crisis so why is it so unbelievable that Killian would have the same thing?
He went to Nemo and said that he needed to find that man. It’s been his arc all season … that he can’t forgive himself and this bit of information threw him into a mindset that maybe he shouldn’t be forgiven because he might just keep ruining families. He ruined his own, Rumple’s, and now he thinks it would ruin things with the woman he loves the most?
Nemo gave him advice and he didn’t listen and instead thought that if he could just go back one day and forget the thing then he could move on.
He planned to leave because he thought his presence was going to tear Emma’s family apart and he couldn’t bear that.
But then Snow’s comments reminded him that love is worth the risk and that he can be forgiven and he knew that he would have to face this and that he really could be the man that Emma wanted him to be.
Does anyone actually believe Hook won’t be forgiven by the Charmings? It’s not as though he faces consequences for his actions other than his own tedious manpain. I don’t even know why he was worried: Emma didn’t care that he tried to kill her son, why would she care about a guy she never met?
Also trying to erase a memory of something terrible you did because you can’t bear to face it? That sounds almost - cowardly…