I believe I have isolated the problem. Because my datapoints are coming in Asynchronously, they are not sharing X-axis points. As such, my chart.data array has dimension of N where N is the number of series, but each series is being stored using M data points where M is the total number of points on the chart, not the actual number of points in the series. For example, if series 1 has 20 points, series 2 has 30 points, and series 3 has 40 points, then the array for the first series would have length 90, with its points stored only in the first 20. the remaining 70 entries take on the default missing value of 1.0E+108. As new points come in, they are added to the end of the whole list, not at the end of it's section. My guess is that as soon as the compact method sees one of the 1.0E+108 values, it stops, marks how long the list was, and starts looking at the other series, but only for this same length. Therefore, it never sees the data that is present in the other series, and also never sees the new points that are coming in. This would also explain why when I have only one series, It is actually able to see the new points, because there are never any 1.0E+108 values in the data array.
Any thoughts on a workaround?