I don't think that is ok. Re-seat the card, several times if needed. Each time, try to play with the angle of entry a bit, i.e. let it droop a bit, keep it level, keep it a bit higher. Without forcing anything of course, just very small changes.
Running at 2.0 when it's supposed to be 3.0 could indicate a seating problem of some sort. 2.0 shouldn't be that much slower than 3.0. However, the discrepancy might be a clue that more than one bit isn't making proper contact.
Anyway, I've run into that issue a couple of times and re-seating several times fixed it, so worth exploring. It wasn't just how GPU-Z was reading it, I noticed it in gameplay etc, although not as extreme as in your case. Check for dust in the slot as well.
P.S. Which motherboard is it and do you have any other device plugged into another PCIe slot?
P.P.S. See if there is a more recent BIOS version for your motherboard, and if so, flash it.
There is only one PCIe slot on the motherboard. I'll try re-seating the GPU again in the morning (it's 2am here now), and I'll check for a newer Bios. I'll post a reply here, if that's OK? I'm very grateful for your help so far. I fear we're running out of possibilities though. The card was a big outlay for me and I've only recently got bitten by the gaming bug.