Jelly, 8 bytes
;E¡0ỤḢṬ+
Try it online! or verify all test cases.
How it works
;E¡0ỤḢṬ+ Main link. Argument: A
E¡ Do e times, where e is 1 if all elements of A are equal and 0 otherwise.
; 0 Append 0 to the array.
Ụ Grade up; yield the indices of the resulting array, sorted by their
corresponding values in that array.
Ḣ Head; extract the first index, which is the index of the first occurrence
of the minimum. For an array of equal elements, this will be the index
of the appended 0.
Ṭ Untruth; for index i, yield an array of i-1 zeroes, followed by a 1.
+ Add this array to A, incrementing the minimum.