Mike,
what are the Settings for the Camera on your iPhone?
You can see, if your iPhone is taking the photos and videos in the space saving HEIF format or as JPEGs in the
- Settings > Camera
- Tap "Formats".
If the format is set to "High Efficiency" you are shooting HEIC, if it is set to "Most compatible"; the format will be JPEG.
HEIC has the advantage of a better compression needing only half the amount of storage compared too a JPEG of the same quality. Frankly, I am not sure, if My Photo Stream can handle HEIC at all. The support page for My Photo Stream (My Photo Stream - Apple Support) is only stating these formats as supported:
"My Photo Stream supports JPEG, TIFF, PNG, and most RAW photo formats. My Photo Stream doesn't support video or Live Photos. ...
Tony, do you know, how My Photo Stream is handling HEIC, if at all?
So I would switch the Format in the Settings of the camera to "Most compatible". You would then be shooting JPEGs, And My Photo Stream does not need to convert the files. They will arrive on your Mac in the same format as on your iPhone.
If you want to keep the space saving HEIC format an your iPhone and Mac make sure that the Settings > Photos : Transfer to Mac or PC are set as described by Tony to "Keep original".
If you are still getting duplicates, tell us please, if they are exact duplicates. Compare the format , the filename and the filename extension, the pixel size. Whenever I enabled My Photo Stream on my iPhone, I got plenty of duplicates with cryptic filenames and a smaller pixel size, because My Photo Stream has been uploading the photos from my Mac to the iPhone as smaller files with cryptic names. And occasionally these smaller copies got downloaded back to my Mac.