!!!!! I'm now getting somewhat disturbed by what's happening in Laz 2.2 !!!!!
Opening my project this morning simply by double clicking the Laz 2.2 Icon - it opened a version prior to the conversion to dynamic arrays !!!! I found this out because I had another 'Out of Bounds' Error
When I closed the project yesterday I KNOW that the code was the version that had the dynamic arrays

Due to the 'Backup' folder I was able to find the version which did have the mods and by clearing out the project folder and restoring the 4 files (PAS, LFM, LPI & LPS) I was able to get back to where I was yesterday.
Now I could start the process of tracing why some of the historic figures were not being correctly filled (or so I thought). In fact I came unstuck very quickly. Naturally once I've set up the screen position and the various basic house-keeping of reading the date (which also sets 'CurrWeek'), assigning the file names etc. I have to read the existing data (or create it. if it's a first time run) and the first process in that is to calculate the current Year, Quarter, Month & Week, all of which are simple assignments - viz:
2895 Hist_Y := CurrWeek + 99;
2896 Hist_Q := CurrWeek - 13;
2897 Hist_M := CurrWeek - 4;
2898 Hist_W := CurrWeek - 1;
Hist_Y is assigned correctly but pressing [F7] or [F8] on line 2896 doesn't move the focus down to line 2897 - it jumps to a totally different proc. at line 2843 - not to the start, but to the second line.
2836 procedure ReadHistGasRates;
Var
i,p : byte;
S,
S1 : String;
begin
OpenCSVFile('Hist Gas Rates');
2843 Gas_Rate.StandCharge := 0
[...]
Which is a proc which is only called when I'm initializing the data from historic .CSV Files
So I'm back to the original problem

I'm not getting RangeCheck errors so it cannot be data over-writing code (however tenuous that might have been as a cause).
????