Marathon runner clocks up 104 miles for charity