Why do they call their Sensei by his given name? I read that in Japanese culture a person's given name is used very rarely except for children, so I guess that's why for example Naruto refers to Sakura Haruno as Sakura. But why do they call Kakashi Hatake "Kakashi Sensei" and not "Hatake Sensei"? This also applies for all the other teams and their teachers.
The main reason is Naruto's Universe is different from ours.
In most of the other anime where the story takes place in Japan, Japan's mode of addressing applies. Calling your teacher and your female/male friend by family name. Calling each other by name if you are a lover or male-male or female-female friend. Respecting your seniors by calling them Senpai, etc.
However, since Naruto takes place in a different universe, the mode of addressing is different. In Naruto, you can find people not only calling by their names but also by their nicknames. Naruto has nicknames for most of his friends, sensei, and elders, like Rock Lee-Bushy Brows, Ero Sennin-Jiraya, ... which you mostly don't find in real life.

This is not limited to just Naruto. One Piece, Attack on Titan, and most of the other anime where their universe is different from ours (or Japan), the usual Japanese mode of addressing doesn't apply.