Thanks for the reply.
I've fixed it. Not by using your method but by googling differences between iPhone and Samsung. They use different codecs is the first thing I found but although going into developer options shows others you can't change them.
So I poked around and changed the Bluetooth MAP version from 1.4 to 1.2 and it worked immediately.
I have no idea what MAP version means but I'm happy it works. Hopefully it won't affect other Bluetooth devices.