For point 1, i could be that the batch is starting before the software you use to apply the OC or something like that. You could try adding a few seconds delay in the start of the bat, ex: "timeout 20"
In case described above I do not use OC-ing software, but only options provided by Claymore, i.e. -mvddc -cclock -powlim etc. It works well but from the second run only.
It looks a bit strange becuase all settings are apply to cards at first run (according to monitoring software like HWinfo or GPU-Z), but hashrates are lower.