Generally speaking, 要...了 implies that some action is to be taken in the future. So 我们八点要上课了 simply means that at 8 o'clock (in the future), we will attend class. The 了 indicates a specific instance of the 8 o'clock class will be attended in the future, whereas omitting the 了 would make it sound more like you're talking about a schedule with a regularly recurring class. In English, the difference would be akin to
"We will attend the 8 am class." 我们八点要上课了
vs
"We attend an 8 am class." 我们八点要上课
We can modify 要...了 with either 就 or 才. The former indicates a feeling that it is happening soon, earlier than perhaps expected, in a rush etc... all the feelings related to time being too short. 才 is the opposite: something being eventual, late, slow etc. To illustrate:
我们早上六点就要上课了
This means that we have to attend class in the morning at 6 o-clock (again, referring to a specific instance of a class to be taken at some point in the future), and the feeling is one of that timing being too early. Contrast this with
我们晚上十一点才要上课了
where the author expresses that 11 o'clock at night is quite late for a class (again, that will be taken in the future).
When we use 快要...了, we essentially indicate that something is imminent.
我们快要上课了
means "we are about to start taking class." Since there is a sense of imminence implied by the construction, it is not suitable to modify it with a time, since that time will either conflict with the sense of imminence, or just be an outright tautology. This hopefully answers your question in the heading.