First, I'll replace "school" with "a party" in your sentences.
D. I have a party tomorrow.
E. I'm having a party tomorrow.
F. I'm going to have a party tomorrow.
These are all fine. In D, we don't know who the host is. In E and F, I'm definitely the host. E sounds a bit more definite and immediate than F.
But when the thing I'm having tomorrow is "school," the situation is slightly different. I would never use your sentence B ("I'm having school tomorrow"), because the decision to hold school or not is up to the person who runs the school, and that person wouldn't use the verb "have," since "have school" only fits for the passive people, who don't decide when to hold school, i.e. the teachers and the students.
(In comparison, "I'm having class tomorrow" would be fine for the teacher to say, because the decision to hold or cancel the one class would be under the teacher's control.)