This question is way too big for a 10,000 character comment. I'll just restrict myself to Serbs and Croats, and even then it will probably need two comments.
There are two deep underlying issues. One is that Serbs and Croats, originally the same people, have had dramatically different historical experiences in the last 1000 years. The Serbs became Orthodox; they were oriented towards Byzantium at first, and then got conquered by the Ottomans in the 1400s. The Croats became Catholic and, after various twists and turns, got incorporated into the Hapsburg state.
So Serbs and Croats are neighbors, ethnically pretty much identical, and speak the same language. But they have different religions and are pretty different culturally. Furthermore, the different historical experience has shaped negative views of each other. The Croats have inherited the Austro-Hungarian ethnic hierarchy. In this view, they are superior because they are Catholic, "western", and generally more "advanced" or "developed" or "civilized". Meanwhile the Serbs have a historical resentment about being conquered by the Ottomans; in this view, the Serbs sacrificed themselves to save Europe, including the supremely ungrateful Croats. Both these views are pretty silly IMO, but they are real, and if you spend much time in the region you'll encounter them.
But these are annoyances rather than hatred. The hatred is much more recent, and comes, as you correctly note, from WWII.
So after the defeat of Yugoslavia, Hitler created a Croat puppet state under a malevolent politician named Tudjman. It's worth noting that before 1941, Tudjman and the Ustashe were pretty fringe-y. They did not represent the mainstream of Croatian political thought. Nevertheless, they were put in charge and given pretty absolute power.
One challenge they faced right away was that Croats were just barely a majority in their new Croatia. There were a lot of Bosniaks and Jews and Roma -- and most of all, there were a lot of Serbs. Serbs composed about a third of the population, and in two large regions (Slavonia and Serb Krajina) they were outright majorities.
A more benevolent or sane government might have tried various policies -- local autonomy, gradual assimilation, whatever. But Tudjman and the Ustashe were a bunch of vicious, brutal radical nationalists. So their policy was to (1) force the conversion of a lot of Serbs to Catholicism, thereby "Croaticizing" them, and also to (2) expel a bunch of Serbs out of Croatia, and also to (3) just flat-out murder a lot of Serbs, either by small-scale local massacres or wholesale at the concentration camp at Jasenovac. Forced conversion was definitely a thing, but expulsion and killing dominated, in part because they provided a nice little bonus bump of stolen Serb lands and property to Ustashe and their sympathizers.
As usual with this sort of thing, there was a whole spectrum of responses among both persecutor and persecuted. Some Croats were enthusiastic Ustashe; some resisted fiercely, joining the various resistance groups and/or trying to help the Serbs. Most were in the middle, and a large number went along with the persecution at least passively, rather like contemporary Germans with the Holocaust.
By the end of the war the number of Serbs in Croatia had been dramatically reduced (and the Jews and the Roma had been wiped out almost completely). Still, Tudjman had not had enough time to finish the job. So a large Serb minority still remained, and there were still local Serb majorities in Slavonia and Krajina.
We can now move to the postwar period and Communist Yugoslavia, but first I'll pause and see if there are any questions (and if anyone is still interested, since this fell of the front page a couple of days ago).
Okay, a quick wrap-up.
As Yugoslavia disintegrated, the Croats in Serbia (mostly living in Belgrade or in the northern part of the country) and the Serbs in Croatia (mostly in Serb Krajina and Slavonia) found themselves in an impossible situation.
In the case of the Croats in Serbia, although there were a couple of hundred thousand of them, they were everywhere a minority. There were Croat neighborhoods in Belgrade, and Croat villages in northern Serbia, but there wasn't any Croat area big enough to be defensible as a separate region. So they pretty much all just fled. Lots of them were being fired from their jobs anyway, as the nationalist Serb state government sought to purge "questionable" elements and replace them with its own supporters. And as Yugoslavia broke up, and Serbia and Croatia lurched towards open war, their physical security could no longer be guaranteed. So they left. This period is full of sad stories of Croats selling off their houses and furniture for nothing, or giving house keys to a friendly Serb neighbor against the forlorn hope of returning.
The Serbs in Croatia were in a different situation. They occupied two fairly large but compact areas that could plausibly be defended. Furthermore, they had support from the Serb government and from JNA, the Yugoslav National Army. (JNA's officer corps was disproportionately dominated by Serbs, and also JNA was one of the last Yugoslav federal institutions to stand against separatism. So because JNA disliked the idea of Croatia seceding from Serbia, they were fine with making it as difficult as possible by helping the Serb parts of Croatia secede from Croatia, if that makes sense. So JNA made sure the breakaway Serb republics got plenty of arms and ammunition, and then the new Serb state (officially still Yugoslavia) promised them ongoing military support. When Croatia voted to secede from Yugoslavia, the Serb regions boycotted the vote and then counter-seceded.
To be fair to the Serbs in Croatia, the horrors of 1942-44 were still within living memory. The independent Croat state under Pavelic had brutally murdered, looted, raped and tortured tens of thousands of Serbs, and expelled tens of thousands more. Should they wait around to see what the new independent Croat state under Tudjman would do? Better to close ranks and secure their regions! (Of course, this involved expelling all their Croatian neighbors, as possible spies and traitors.)
JNA then tried to push into Croatia to crush the secessionist movement. This resulted in the 87-day siege of Vukovar. TLDR, this was a marginal military victory for the Serbs but a complete political disaster. Pretty much all the non-Serbs in JNA deserted or refused to fight, so that by the end of the Vukovar campaign JNA had ceased to exist as a Yugoslav force and was now a Serb army. Furthermore, while Vukovar did fall, it took months of hard urban fighting and was a PR catastrophe both within and outside of Serbia. After Vukovar, the government in Belgrade realized that suppressing Croatian independence by military means was a non-starter. So they decided to go for the next best thing and support the breakaway Serb regions in Croatia. In theory these regions were independent republics. In fact nobody recognized them except for Serbia, and they were effectively under Belgrade's control.
[I'm now going to skip over Bosnia, because it's too complicated]
Fast forward to 1995. To simplify four years of intense and complicated history, the Serbs are much worse off now, while Croatia has dramatically improved its position. Croatia got international recognition as independent, plus international recognition of its borders -- meaning an implicit recognition of their right to crush the breakaway republics. Meanwhile Serbia had undergone hyperinflation and a dramatic degradation of their military capacity. Furthermore, the Serb leader Milosevic had pretty much given up on supporting the breakaway Serbs of Croatia. There were a variety of reasons for this, but basically Milosevic concluded that they simply weren't worth it to him.
And so in May 1995 Croatia was able to quickly invade and recapture the Serb-controlled parts of Slavonia, and just a couple of months later they were able to do the same for Serb Krajina. These actions were known as Operation Flash or Lightning (same word in Serbo-Croat) and Operation Storm.
Lightning and Storm involved -- of course -- ethnic cleansing of the local Serbs. Basically they were chased out at gunpoint, with a few lurid killings and massacres to make sure everyone got the message. There's a huge amount of denial about this, but there's also a big pile of evidence at the International Criminal Tribunal in the Hague. Also, the numbers pretty much speak for themselves: in 1990, Croatia's population was about 12% ethnic Serbs. Today it's about 4%. The remaining Serb bits are mostly rural and poor, and separated and broken up.
So, Tudjman was nowhere near as evil as Pavelic, but he achieved Pavelic's dream: reducing the number of Serbs in Croatia to a much smaller, "manageable" minority, no longer capable of secession or any sort of threat to the Croatian ethnic state.
And so we come to today. Putting aside Bosnia (too complicated), there are pretty much no Croats left in Serbia and very few Serbs left in Croatia. This has made it possible, in some ways, for them to get along better; they're no longer in direct competition for territory or resources. On the other hand, it also means that both Serbs and Croats have been left alone to wallow in their respective versions of nationalist history, which in both cases is a mixture of resentments, exaggerations, and lies.
Phew.
I just want to add to this, since the interwar period hasn’t been covered well here. This hatred definitely starts up prior to WW2 and can be seen shortly after the 1918 foundation of the Kingdom of Serbs, Croats, and Slovenes. In a nutshell, many ethnic/religious groups were for the creation of a united Slavic country, but when the Serbian Karađorđević family was installed as the ruling power, non-Serbian Slavs feared their interests/power/rights wouldn’t be protected- they were right. Serbs essentially had a monopoly on power in the Yugoslav government, and over the next two decades restricted the financial, political, religious, and social rights of non-Serbs.
Here's where claims of interwar genocide come in and get sketchy, and the only thing that I think Malaquisto missed- The Serbian-led government didn’t publicly enact pogroms or formal military campaigns against non-Serbs. Instead, individual politicians and political parties financed private paramilitary groups to roam Yugoslavia, harass non-Serbs, disrupt elections, and impose Serbian hegemony. In my research I’ve found 22 Serbian funded paramilitary groups that operated between 1918-1941. This was not genocide, but it was organized oppression and violence (primarily, but not exclusively) towards Bosniak and Croat peasants. During this time there were also formal political executions and informal ones as well (Croat politician Stjepan Radić was murdered during a parliamentary session by Serbian politician Puniša Račić, who was punished by being put under house arrest in a lavish villa). This interwar violence is well-documented by historians like Sabrina Ramet & Mark Biondich, and can be seen in Vladko Maček & Dragiša Ristić’s memoirs/papers).
Now it should be acknowledged that Croatian resistance groups did exist and did fight back against the government, but they were relatively minor/ineffective. The most extreme/violent group, Ustaše, operated out of Italy, and were generally unsupported by the Croatian population until the German takeover of Yugoslavia (in 1937 they had less than 500 members). What I think did factor into the growing rift between Serbians and Croatians was the Croatian Peasant Party’s mobilization/modernization of the Croat peasantry. In the late 1930s Croat politician Vladko Maček organized an effort that taught literacy to 200,000+ peasants and encouraged them to participate in politics. Many Serbians saw this as a growing threat to Serbian dominance and preached to their followers that Croatians intended to take over Yugoslavia and oppress the Serbs (this did happen but it was a weird, unpredictable sequence of events that put it in place).
Maček was actually able to negotiate with moderate Serbs in power and establish an autonomous Croatian state within Yugoslavia… then the Nazis showed up. They asked Maček to lead a Nazi-backed government, but he declined (and was imprisoned), so the Naziz went to Pavelic/ Ustaše who massacred a horrifying number of Serbs and Jews. Had Maček agreed, this could have been avoided but Maček acknowledged that Yugoslav politicians knew that Jews were disappearing under the Nazis and he wanted no part of it.
So the interwar period was absolutely a time of strife and violence imposed by Serbian loyalists and agitated by Croatian extremists, which set the stage for Ustaše’s brutal oppression of the Serbs. Side note: a handful of Serbian-backed paramilitary groups associated with war crimes/genocide that operated in the 1990s used the names and even the logos of the Serbian paramilitary groups from the interwar period. The interwar period was often referenced by all parties in the 90s as being a source of their respective victim identities, and quite honestly there was violence by all sides in that period, although the Serbs were the biggest culprits in that era. But to echo Malaquisto again, the interwar era was not a period of genocide.
Again, Biondich and Ramet have done a lot of great work digging into the rampant violence in the interwar era and are worth looking into.