I have no experience with the Viki2, but I’d check any ground wires if relevant between the MCU and the screen. I’d also see which commands change it back. E.g, is M106 the only thing or do other commands? IDK, just troubleshooting to find more details.
Ok, I played with AZSMZ display on arduino2560+ramps. It’s the same as viki2 for firmware. Default contrast is 31 but I need to set it to max (63) for good picture. So go to firmare, find and change default contrast.