The ALL function in DAX removes filters and returns all distinct values from the specified column or table — not all rows. That’s why it seems to “ignore” duplicates.
If you're using ALL(Table[Column]), it behaves like VALUES(Table[Column]), returning a unique list of that column’s values, even if there are repeats in the original data.
To preserve duplicates, use the full table reference:
ALL('Table')
This returns the entire unfiltered table, including duplicate rows.
So, if you want to work with every row (including repeats), avoid selecting just a column inside ALL().