Do away with the list of totals. You can track the highest total as follows, then re-insert the student at the top of the list.
List<Student> students = new List<Student>();
// populate the students list
// Mark the student with the highest total as we find him.
Student highestTotalStudent = null;
var highestTotal = 0.0;
foreach (var student in students)
{
var tempTotal = 0.0;
for (var i = 0; i < resultSet[0].Fees.Length; i++)
{
tempTotal += student.Fees[i].Amount;
}
if (tempTotal > highestTotal)
{
// We have a new winner
highestTotal = tempTotal;
highestTotalStudent = student;
}
}
// Finally, remove the located student, and re-insert her at the top of the list
students.Remove(highestTotalStudent);
students.Insert(0, highestTotalStudent);