You could replace ORD-BOS-SFO-LHR with ORD-SJU-LAX-LHR for a bit more miles and better planes on AA (also more flight choices out of LAX-LHR). LHR-MEL could be done as LHR-BKK-HKG-TPE-HKG-SIN-MEL, adding a day to go from BKK to SIN (I find LHR-BKK is much nicer flight than LHR-SIN due to the slightly longer distance and seems to have lighter loads).