They sound similar because it's same language, but different dialect. Serbs in Bosnia, Belgrade and Montenegro speaks the same language, but with different dialect.
Yes, Croats, at least 85% of them have Serbian ancestors. That is visible on almost every step in their country, but pressure of Catholic Church was brutal and many Serbs were forced to declare themselves as Croats. So, basically they were told to my people: ,,From now on you are Croat, you speak Croatian language and you are Catholic".