Hello. The are two main things I think you need to consider: order pairs and assigning routes to depots.
To make sure students are delivered to the appropriate school, use order pairs. So for each student, you will have two stops: one at their home and one at their school. Then you link the two together with order pairs. This means you will have a figurative "stack" of stops at the schools--one for each student.
(As an aside, school districts often have requirements that limit how long a student can stay on a bus. The reason is that they don't want the student to spend hours of unproductive time on the bus each day, so they may have a limit of say 30 minutes each way. You can set the MaxTransitTime of OrderPairs to try to find a solution that complies with the time limit.)
To make sure the routes start and end at the right place--the driver's home--create depots at each driver's house. When you create your routes, assign the Routes' StartDepotName field to the appropriate depot--the one at the driver's home. Do the same for the EndDepotName. You want to make sure the route, which represents a bus, matches the type of bus the driver actually drives. That is, if the driver drives a short bus with a capacity that's less than other buses, make sure the correct depot/home is related to that bus. The same is true for any specialties, like a wheelchair lift or air brakes vs. hydraulic brakes.
Hope that helps. Let me know if I can answer any other questions.