I seem to remember running into the same problem a few years ago and eventually having to solve it with a deftly placed completeRedraw() either directly before or directly after skinOps.loadEnvelope, which is still as ugly as hell but not as bad as running it twice.