О́тпуск is something you have when you're working, and you can usually choose when to have it. Кани́кулы is something you have when you're studying, and you can’t choose the time.
I wrote отпуск because that's what they'd used earlier in this lesson, so I thought that's the one they wanted there. I think it needs to be fixed because you can take a break from work or school, so it could be either.
That's right. "Зимний перерыв" doesn't exist in Russian since the word "перерыв" is not associated with any season.
I'm still confused as to why they don't accept отпуск, because in the course one of the sentences is Наконец-то! Летний отпуск!, which seem to follow in the same vein as this question.
Although we say ״летний отпуск", we usually do not specify the season of the year when it is other than the summer. This is why it is unlikely that, in the case of "winter break", отпуск is meant rather than каникулы. On the other hand, зимние каникулы is a common phrase.
You just have to remember that (1) каникулы has no singular form, only plural; and (2) the masculine forms of adjectives зимний, летний, весенний, вешний, осенний, ранний, поздний, верхний, нижний, дальний, ближний, средний, крайний, последний, лишний, порожний, иногородний, междугородний and some other end in -ий rather than -ый in the nominative case (their neuter and feminine forms end -ее and -яя respectively). Their nominative plural forms end in -ие.