Yes essentially it is a CANBUS error.
CANBUS is a data line communication system that a lot of modern cars employ - essentially allowing all the different components of the car to communicate with each other to form one larger electronic network, rather than just having different parts of the car doing their own thing.
The flashing odometer tends to mean that something is out of 'alignment' so either you've changed a part and not 'introduced' it to the system, or potentially a part has failed.
As said above, a failing battery can mean elements of the system show a lower voltage that the system is not expecting and produce phantom errors.
As noted above if you have or do replace and element or 'node' (a component forming part of the CANBUS network) in the system you need to officially introduce it to the system - this is known as proxy alignment. As all the elements of the system are coded to each other introducing a new 'virgin' part or a second hand part coded to a different system will cause the flashing due to an error in the system, as there is an unfamiliar part present. Proxy alignment is the manner in which you recode and introduce parts to the system. Its the electronic CANBUS equivalent of calling a team meeting and will integrate the new component to the system.
I believe this is possible to achieve with a laptop, right sort of data cable and MultiECUScan these days.
1999 156 1.8TS Sport Pack 3
2001 166 3.0 V6 24V Super
2003 156 GTA 3.2 V6 24V
2005 156 1.9 JTDM-Jet Sport
2008 159 1.9 JTDM Lusso
1997 GTV 2.0TS Lusso
2001 147 1.6TS Lusso