The headlights do remain on even in the off position. They time out after 10min. I have aftermarket installed on uplifters, a viper security system, k&n intake. This happened the other day when it was pouring. Buddy of mine is going to take a look at the bcm and hook it up to a computer as well this afternoon. I replaced the switch and tested all fuses and relays.
If the BCM doesn’t receive an input from the headlamp switch (bad switch, open circuit, etc) it defaults the headlamps to on as a fail safe. Is your Viper system tied into the headlight switch wiring or BCM?