You have greater protection on a single booking, at least in terms of making it to your final destination. Although a 12 hour connection in LHR would buy you a lot of slack, if YUL-LHR was cancelled then you'd be rebooked onto other flights to get you to India if you had a single ticket. Whereas with separate bookings, BA would be under no obligation to help you if you missed the LHR-India flight. That being said, if seeing your friends in London is essential, it's worth noting that during significant disruption you might get rebooked on another airline flying via a different city.
I would expect separate bookings to be significantly more expensive. At the very least you'd also be liable to pay uk Air Passenger Duty on the LHR-India flight (£90 economy / £216 PE or higher), which isn't charged on connecting passengers on through tickets (connections < 24hrs).