vtkDiscreteFlyingEdges2D does produce correct output scalars for multiple contour values
the vtkDiscreteFlyingEdges2D filter always sets the last/highest contour value as scalar value for all output scalars. This happens because of the code on line 776:
std::fill_n(algo.NewScalars, totalPts, TValue);
this line called for each contour value, i.e. previous values are overwritten.