Your story reminds me of my (painful) student time in Italy, but I (and my friends) were the bad, incompetent guys :)
Back then we were 3 Asians doing Master in Software Engineering in Trento. There, they offered one of the most theoretical Master programs that I've ever known. The mandatory courses for Software Engineering included Computability (lambda calculus etc), Computational Complexity, Concurrency Theory (pi calculus etc) etc. And we all sucked.
I got 0 in Computability in the first semester, I decided not to retake the exam in the second semester since I understood nothing, and I managed to pass it in the third semester. My friends X and Y went to the Dean and told him they could not finish this program unless he let them to pass Computability :D
I and X graduated after 5 semesters (the standard is 4), Y needed 3 years to do that. Our GPA were less than mediocre, and there were several courses that we needed to take the exams several times. So if you, the OP, says we are incompetent students, I agree. My friends may also agree.
But if you say we are incompetent researchers, we will not agree. We sucked at math stuffs like Computability, but there are still many things that we can do research on. I have just finished my PhD in the UK, and I'm going to start my post doc in the US this month. X also submitted his PhD thesis in Canada, and already has a post doc offer from a top school in the same country. Y stayed at Trento for PhD, and already started his post doc with a US government agency early this month.
We may be mediocre researchers, but not incompetent. Because our PhD advisors have been happy with us. Maybe you are right, the people in your department are really incompetent. However, if our advisors evaluated us merely based on our GPAs and performances in class, we would never have a chance.