Read the documentation
https://wiki.lazarus.freepascal.org/TAChart_documentation#Multi-valued_sources.
For TBoxAndWhiskerSeries, we need five y values. This means, in addition to the ordinary y value, four y values will go into the YList. BUT: YList is a zero-based array. This leads to some unusual indexing:
* "normal" y value --> y index 0 --> stored in Series.ListSource[i ]^.Y
* first extra y value --> y index 1 --> stored in Series.ListSource[i ]^.YList[0]
* second extra y value --> y index 2 --> stored in Series.ListSource[i ]^.YList[1]
etc.
For 5 values in total, YList is allocated to get 4 values because the other one is outside the array. This means, you have Y, YList[0], YList[1], YList[2], YList[3]. There is not YList[4]! And you did not assign anything to YList[0]...
I don't know whether this produces the effect that you mention.
But note: TBoxAndWhiskerSeries has an overloaded AddXY method where you simply specify the y values in the order from lowest to highest - this frees you from all these details.
The following code snippet compares both methods to add data to a Box-and-whisker series:
procedure TForm1.FormCreate(Sender: TObject);
begin
// Chart1BoxAndWhiskerSeries1.ListSource.YCount := 5;
Chart1BoxAndWhiskerSeries1.AddXY(0, 0.5, 1.0, 1.5, 1.9, 2.7); // specialized for TBoxAndWhiskerSeries
Chart1BoxAndWhiskerSeries1.AddXY(1, 0.5, [1.0, 1.5, 1.9, 2.7]); // valid for all series types
end;
Another note: If your Lazarus version is very old then you must specify the YCount of the chart source before adding data: BoxAndWhiskerSeries.ListSource.YCount := 5. In current versions, this is no longer required.