What nozzle size are you using? Do you have a 502 or 501 nozzle? The nozzle set from CharmHigh isn't a wide enough variety to get the most out of them.
I got an extra set of 500 to 508 nozzles from aliexpress for ~$80 and did some tests with the 502 nozzle, but results with 0402 parts did not improve compared to the 503 nozzle - I had the feeling the 502 nozzle maybe even was worse for 0402 than the 503.
Precision of the/(my?) CHMT36VA isn't too good (see below) and the 502 often picked C/Rs at the edge of the component instead of the center. This resulted in more tilted Rs. (I did calibrate the 502 nozzle before doing the tests.) The 503 seems to do better - probably because the larger surface area covering the component reduces tilting.
So I'm using the 503 nozzle for 0402, 0603 and 0805 now with satisfactory results.
Changing nozzles on the machine is a bit annoying anyway, so I'm keeping the 503 in nozzle #1. I will probably use nozzle #2 (not sure which size yet) for ICs, but at the moment I'm still placing ICs by hand because that's ok for prototypes and I have some trust issues regarding proper placement of fine-pitch ICs with the machine anyway 😅.
Regarding machine precision I added two photos pre & post reflow. (Used an old paste for the tests, normally I use GC10 T4 - works very well.) In the pre-reflow photo several vertical components on the right side were placed with an adverse Y-offset. This is strange - sometimes this does happen, sometimes it does not. Not yet sure if it's related to PCB calibration (switched to 3 fiducials now) or to the machine calibration on startup.
So I usually want to place just a few components for testing before doing the rest. This is inconvenient to do with the CHM software. That's the main reason I made the Kicad converter interactive - so I can easily (de)select components for placement.
Regarding machine calibration on startup I made another peculiar observation: the machine modifies the feeder pickup locations (and placement locations if I remember correctly) during a job:
1) Make a copy of the DPV
2) Start machine, run the job for the DPV
3) Finish job, exit
4) Compare DPV to the copy of the original DPV
-> Usually positions change +-0.1mm
Btw. for testing I don't use a double-sided adhesive tape - instead I spread a thin layer of flux gel on the PCB with a small brush. (Picture 3) Prevents the components from taking flight, you can see where everything landed and PCB height isn't affected.