Ok well here's an interesting discovery I've made, for anyone who finds this thread in the future:
There seems to be an issue with the driver for the off-brand Arduino Nanos possibly not signalling to the OS correctly, or the implementation that Qt uses just really doesn't like the way that the driver responds. I am referring specifically to the nano clone which uses the QinHeng HL-340 serial peripheral. Not sure why this caused a problem, but there it is. Once I used an official Uno the code worked no problem.
If I were more patient and had better resources I could possibly trace back the issue, but I do not, so sorry everyone lol.
As such I'm marking this as resolved.