Sorry that I cannot help you myself - my skins experience is minimal - but I will move this over to Tech Support which is where it belongs and where it will be noticed by people monitoring that forum.
EDIT: One piece of advice that I can offer you is to append the faction name to the file name of each of your skins. That seems to be SOP according to
this authority. That
may be why your skin applications are working while in the game but failing upon reload. Back when I was looking at skins and asking a question about the slight file size difference which explains the highlighting (the answer was it was too small a difference to matter) this is the sample image that I posted; notice the faction names:

- Capture934.jpg (82.52 KiB) Viewed 1443 times
EDIT 2: Here's something else which may be more informative than helpful. Custom skins go into your C:\Users\[name]\Documents\My Games\Order of Battle - WW2\Skins folder, as you know. The game looks in there but it also looks at its own folder for standard skins according to your faction and unit. So, for example, my custom skins folder is empty right now. However, I was able to focus on a PzKw IV E just now, select the Unit Information Panel, click the Skins button, and could choose from those skins that you mentioned; "Sandstorm" and "Desert Snakes." Those apparently are the 2 out of 9 standard skins that are applicable to this particular unit:

- Screenshot 1.jpg (427.26 KiB) Viewed 1441 times
Perhaps this would be an interesting experiment: Does the selection of
standard skins stick? That is, are they still applied when the saved game is loaded? If so, then that could point to the validity of what I said about appending the faction names to the end of the custom skins file names so that the game knows next time. However, if standard skins fail, then I'd say you have a tech support problem.*
Here is a list of the standard skins; remember, each is applicable to only certain factions and units:
[3_COLOR_PATCHES]
id = 0
texture = japan_0
factions = japan, ijn
category = land
[3_COLOR_STROKES]
id = 1
texture = japan_1
factions = japan, ijn
category = land
[3_COLOR_OUTLINED]
id = 2
texture = japan_2
factions = japan, ijn
category = land
[2_COLOR_OLIVE]
id = 3
texture = usa_0
factions = usa, redusa, usarmy
category = land
[OLIVE_BEIGE_OUTLINED]
id = 4
texture = usa_1
factions = usa, redusa, usarmy
category = land
[OLIVE_BRONZE_PATCHES]
id = 5
texture = usa_2
factions = usa, redusa, usarmy
category = land
[SAND_STORM]
id = 6
texture = general_2
category = land
[GERMAN_DESERT_1]
id = 7
texture = german_0
factions = germany, waffen_ss, kriegsmarine
category = land
[GREEN_BEIGE_WEB]
id = 8
texture = british_0
factions = britain, raf, canada, new_zealand, australia
category = land
EDIT 3: *I just reread your last paragraph and saw that these standard skins do indeed "stick." Now I
bet the answer is to add the faction names to the custom skin file names.