My understanding is that most commonly the disagreements happen over cultural values. So for example, elves might grow upset at humans' treatment of animals. While I do love legends viewer, it usually doesn't list details about wars. It is good for looking stuff up, but you almost need to find its counterpart in real Legends to find out why a conflict happened. You can also explore a bit in Adventurer mode and find out about conflicts brewing, but I don't recall whether they explain -why- the conflict occurred.
I'm guessing that a lot of the information you're looking for is stuff you can find in the raws. Entity_default should list the values of each civilization, as well as what their preferences for settlements are. I've noticed that most civilizations seem to prefer settling near rivers, and there seems to be some measure of "grab as quickly as you can before we run out of allocated sites on the map." A civ is also more like to expand if they aren't at war, or aren't being terrorized by beasts. Basically new settlements (as well as upgraded settlements) are bottlenecked by the civ's population. I don't know exactly how it is determined whether a hamlet grows into town, but I am aware that the larger forms of town are based strictly off of population, which is why they can increase and decrease in size without the architecture really changing.
My hunch is that larger sites can usually only be built a certain distance from the next larger site (or capital, if you will), and again, must have the population to build said site.