Find multiple duplicates in $n$ size data set in linear time
This can't be done in constant space.

Let's think first about algorithms  that read the entire input array before producing any output.  Note that there are exponentially many possible outputs.  In particular, the output might include up to $n/2$ different numbers that are "multiple duplicates".  Thus, there are at least ${n-1 \choose n/2}$ different possible outputs, and ${n-1 \choose n/2}$ is $\Theta(2^n/\sqrt{n})$.  Now the state of the algorithm (the values of all variables, etc.) before producing output must uniquely determine the output, so that means there must be at least ${n-1 \choose n/2}$ possible states.  It requires $\lg {n-1 \choose n/2}$ bits to store that state.  It follows that any algorithm that reads all input before producing all output must use at least $\lg {n-1 \choose n/2}$ bits of space; and this is $\Theta(n)$.  So any such algorithm must use linear space.

What about algorithms that might produce output as they go?  It's still not possible in constant space; such algorithms still need linear space.  Consider an input where the first half of the array has no duplicates, and think about the intermediate state of the algorithm at that point.  That state must contain enough information to deduce the set of numbers in the first half of the input array (if two such input arrays that differ in their first half produce the same state at this point, then we can construct a way to fill in the second half so that the algorithm is wrong for at least one of those -- just pick a number that appears in the first half of one of those inputs but not the other, and make sure it appears exactly once in the second half).  It follows that there must be at least ${n-1 \choose n/2}$ possible states after reading the first half of the input array.  As before, it then follows that the algorithm needs $\Theta(n)$ bits of space.  So producing output as you go doesn't help -- it still can't be done in constant space.