Copying from prior comment:
It turns out our issue is a content extraction bug - the source XLSX apparently has some formatting in it that blows up the QnA Save and Train function.
Notes: whatever the import bug is that stops QnA from accepting data from the XLSX document correctly, there is a bad side effect: it shifts the metadata column over to the source column, so you lose the source data and bot code can no longer parse the metadata because it's no longer there.