Im no guru, but, From your output…
bluetoothd[254]: Unable to get io data for Headset Voice gateway: getpeername: Transport endpoint is not connected (107)
I think its trying to handle the bluetooth connection in the HSP/HFP profile. I had a similar problem, discussed in the below.
It might help to read through that, the symptoms are slightly different but given its trying to get data for HSP/HFP and the audio quality is low it sounds to me that the core issue is the same.
if the headphones are connected, perhaps pick it up from here?
sudo pactl list sources short
You should see something along the lines of
<N> BlueZ5... XX_XX_XX_XX...
where <N>
is our source/sink number and XX_XX_XX_XX...
is the same mac address of our bluetooth headset.
So now we are going to set that audio device to an a2dp output device.
sudo pactl set-card-profile <N> a2dp_sink
I could be wrong though.