Changing tool diameter in the Offsets of the mill is useless unless you're using Cutter Comp in your CAM.
Make sure the tool diameter value is correct in your tool library of the CAM you're using. Adjust as needed to get high precision parts. (example, a 3/8 end mill is never exactly 0.375 and typically at least 0.001" smaller.. maybe more)
Only use G41 when climb milling, G42 is for Conventional milling and rarely used on CNC mills. G40 cancels cutter comp.
It sounds to me like what you really need to do is study up on how to use your CAM and learn what's going on with G code. You can't just insert a G41 in your code and expect it to work correctly. It has to work with the CAM software when it's generating the tool paths and has to be activated in you CAM software first.
Your CAM generates tool paths based on your tool size (size you input into the tool library), when you switch to cutter comp it generates a tool path with zero offset and the mill controller then generates the offsets based on your D value (tool diameter and tool wear values in the mill).