Students of legal age cannot sign their own contracts. Maybe add a system-wide "age of majority" and allow any students at or over that age parent abilities, or create a new student role for them. Allow students to manually be put into that category (rare, but it happens).
Currently, the only way we've found around this issue is to create the students as their own parents and give them a "Contract Login ID" - which is a terrible plan.