This is good news
The Z-80 processor is mostly functional. Or most probably fully-functional, anyway.
You didn't say whether you had managed to trace the actual I/O line right through to wherever it emerged in the real world; but at least you recorded activity on !IORQ (pin 20) while I/O instructions were being performed. I would not expect any activity on the !IORQ line, unless you were using I/O instructions; you should have seen !MREQ (pin 19) pulsing low when any program was running.
What did your screen-filling program do to the display? Was it still showing random garbage, did your program have some effect on the garbage, or were you able to get the wanted character appearing in some or all positions?