Yes, I'd say so. What I'd do is:
-Correct the number of zeros in the header.
-Correct the $22 instead of $4e error
-Correct the loop so it does not produce extra DRQ (inside the loop it should be set DRQ, Pause, read data register, store, decrement counter)
-Probably force a card update (flush) after the write operation is finished.
I wouldn't try to solve the missing handling of BUSY bit nor anything related to the FAT driver. It should work that way.
I'd also take this opportunity to change some more things in the firmware, such as the default protected image thing or the way the Oric is reset.
But I'd try to produce a version of the game which simply bypasses the bug, because not everyone is going to update their firmware... And, besides, who would do it?