What is a profile? A description about a device behavior.
If you made a ICM profile that contains calibration it is stored in ICM profile. Device (display) description was measured AFTER VCGT values fro calibration were computed and applied to screen. So ICM profile contains the behavipr of your screen AFTER calibration.
That means that if you wish to use color management based in ICM profiles with that screen (not LUT3Ds like madVR) you MUST ensure that calibration (VCGT) is loaded intro graphic card. Otherwise display and profile won’t match.
If you see “wrong things” in xnview they may be caused by one of the following:
banding artifacts caused by calibration: get a GPU with >8bit/entry LUT & dithering, or make sure that driver is using that features
banding artifacts caused by color management: limited bitdepth in calculations or truncation when sending color managed RGB values to graphics card. Difficult to solve unless your app is updated to work like CaptureOne or Lightroom (dithering). Try using single curve profiles.
unknown errors caused by xnview (IDNK that app, maybe you can explain in a more detailed way what you see) if previous sources of error do not apply: do not use this app