Whoops, sorry about the repeated post, got a little trigger happy there.
Right. If you go up a few versions to 22.5.3 they have added an additional sanity check on the serial number which checks for replicated characters in the Volume ID, if this fails then it falls back to some code that generates a new one. (search device.c for "serial_valid")
On the version you are trying if there is any serial number present then it will not run this fallback code, it is only run if the serial numbers do not exist at all.
Additionally this whole section does not exist it seems in your original version of Lilo. The serial number probe is a lot simpler there and lives in probe.c, this version does not even seem to care if there are duplicate serial numbers. It would probably be quite interesting to see what serial numbers the old version thinks you have "with the lilo -v 4" again. Personally I am betting they are both 0000000A.
So in the case of your system, I'd avoid 22.5.1 but I am pretty confident that 22.5.3 would work.
As to why lilo is finding duplicate serial numbers in the first place I am not sure. lilo (well the version on my system) generates this number when invoked with the -M option. Maybe if the partitions were created, copied or moved by something other than Linux this could be a problem.
Maybe it's worth doing this before trying the new package again (or even trying it with the new package). That said messing with the MBR on a important system always makes me a little twitchy.
Regards Wayne