No script needed. Personally, I'd put that data in a related table linked to the current record where you have this data such that "parent 1", "Parent 2", "Legal Guardian" can be up to 3 records that are linked to the record for that student. Your conditional value list set up then becomes much more straight forward and you can even use a design where one field identifies the person as "Parent 1, Parent 2, or legal guardian" and another provides the actual name of that person.
But working from what you have, you can get the value list that you want without any script needed.
Define this calculation field, named cParentList, and specify Text as the result type:
List ( Parent1 Field ; Parent 2 Field ; Legal guardian field )
Then define this relationship: (Use your field and Tutorial: What are Table Occurrences? names in place of mine):
StudentTable::__pkStudentID = StudentTable|Self::__pkStudentID
StudentTable and StudentTable|Self are two occurrences of the same data source table. __pkStudentID must be your primary key field that uniquely identifies each student (Don't use a student name field here!).
You can then define a value list with the "use values from field" option to list values from StudentTable|Self::cParentList and you can select the "Include only related values starting from StudentTable" option to limit the values to just those from the current record.
If you change the value of one of these three fields, you will need to commit records (script step or click the layout background) before the value list will update to show the change.
For more on conditional value lists, (but this option isn't found there), see: "Adventures in FileMaking #1 - conditional value lists".
Thanks to your reply, my problem was solved in less than three minutes - flat! I really appreciate your clearly delineated solution to include the ever-so-important field calculation and table occurrence relationship schema . You're awesome, my man. Thanks.