Your daughter will not need a visa to transit at Mumbai if she remains airside; she would just take the lift to the departures area after going through security. This will happen if the flights are on a single booking. If the flights are booked separately, and the luggage not checked through, she may need to collect her luggage and check it in again, which may require passing through immigration/customs. In this case she would need a transit visa.
Note that for South African citizens the transit visa far cheaper than for UK citizens due to a special arrangement between India and South Africa. So if she does need to transit India landside and get the transit visa, it would probably be better to do it on the SA passport.
She can apply for the transit visa at the High Commission of India in Colombo, but should do so as soon as possible as the application will take longer than for a Sri Lanka citizen. The embassy web site says: "Minimum of 5-6 working days."
Obviously it would be more convenient to ensure that the flights are on a single booking so that she can remain and transit airside and not require a visa at all.