The issue here is definitely detection of label length. The ^MNW command only tells the printer that it should expect labels, not how long they are. The printer will still have a default label length it will be looking for. The ^MNN^LL commands effectively tell the printer that you have continuous (receipt) type paper, not labels, so it will eventually be wrong. The command to tell the printer to auto-detect the label length is "~JC" without quotes. It does not need to be in a print format as it is an immediate action command. It will waste 2 labels in order to get the detection complete, but then you should be fine until you change to a different type of label stock.
Thank you Robin,
Your answer helped, now it's working.