X/Y calibration problem (M290.2 function)

Are X and Y significantly different? That would be a sign that the gantry might be out of square, which would render any calibration completely useless when you are after dimensional accuracy. In this thread Skew compensation in the Bambu X1C Firmware, some users investigated that issue in detail and gave instructions how to identify and correct skew.

If I understand it correctly, CoreXY can never have different esteps in X and Y. Both, movements in X and Y are done by turning both stepper motors at the same time. In one case they turn in opposite directions, in the other case in the same direction. When only one stepper motor turns, then the head moves diagonally. So if really one of the belts or a pully is not correct, then it should affect both X and Y at the same time.
In my experience, the kinematics of most printers are very precise, aligning almost perfectly with the calculated esteps and there is really no need to adjust the scaling.

When you say that you had 0.4mm offset on a 25mm cube, that would be a deviation of 1.6% that you corrected with the M290. Are you sure, that those 0.4mm were completely due to wrong scaling?
Let’s assume, your print was slightly underextruded, so that outer walls are set back by 0.1mm. When you measure the outside of the cube, that means the cube is 0.2mm short due to underextrusion and only 0.2mm short due to scaling = 0.8%. (which is still far more than I have measured for PLA and PETG. Was that a ABS print?).
If you scale by 1.6% anyway and now print a 200mm long part, due to 0.8% over scaling, the resulting part would suddenly be 1.4mm too long! Far worse than your initial deviation of 0.4mm.

Have you tested longer parts on your adjusted P1S? I would be really surprised if they come out correct. It is almost impossible to create a good compensation based on calibration cubes. All that you typically achieve is, that similar size parts come out better then.