A nice, complicated, and sometimes confusing puzzle.
Question 1 can't be A, as this would mean that Q1 was the first question with B as the answer and therefore contradict itself.
Q1 can't be B as this would mean Q4 was the first question with B as the answer, but Q1 would actually be the first question with B as the answer.
If we test Q1 as having answer C, you'll see that Q3 points back to Q1 correctly and is logically consistent. This is a possibility.
If we test Q1 as having answer D, then Q2's answer is B, which points to Q4's answer being A, which means that there are 3 questions with D as the answer. Which would mean that Q3 and Q5 were both D, but Q3 would have to be A, as we're testing that Q1 is D.
Therefore Q1 has answer C. Since Q1 has answer C, we know Q3 has answer B.
Looking at Q4 (how many questions can have D as the answer), clearly it can't be D (zero), as this would contradict itself. It can't be A (three) as we only have 2 questions without an answer.
If Q4 was B, then the remaining questions (Q2 and Q5) would both be D, which would make Q2 point to Q4 having C as an answer, which contradicts our guess of Q4 being B.
So Q4 must be C.
Which means that Q2 has answer D.
Which means that Q5 has answer B (as no other option is allowed and we must have two questions with answer B). QED!