Unreliable ESP-01 Programming?

Wondering if anyone else is having this problem?

I have a half-dozen ESP-01s from various sources. and ALL are proving unreliable to program. I've cobbled a board with jumpers to let me pull GPIO0 and RESET to GND. To program, I jumper both GPIO0 and RESET to GND, click Upload, and wait until the "Uploading" message comes up on the Serial Monitor, then remove the RESET jumper. When the upload completes, I remove the GPIO0 jumper. About one time out of three, the upload fails with a communication error, typically "incorrect data direction". Another one time out of three, the upload succeeds, but the code does not run - the Serial port just spits out random garbage. The final one time out of three, the upload succeeds, and the code works properly. The code either comes right up and works perfectly, or doesn't even come up at all. Never once seen it come up and work incorrectly, other than due to coding bugs.

Reducing the BAUD rate makes no difference at all. I'm using a genuine FTDI serial adaptor and cabling, which have programmed hundreds of Arduinos with zero problems, so I doubt there is any issue at all there. That leaves only the ESPs themselves, or the little "adaptor" board it's plugged into, which is one of these:

https://www.ebay.com/itm/ESP8266-Serial-Wi-Fi-Wireless-ESP-01-Adapter-Module-3-3V-5V-Compatible-Arduino-T/172244559789?hash=item281a9367ad:g:yeIAAOSwjONZbDsm

It's a pretty benign little board, as it's nothing but a 5V->3.3V regulator, and two FETs/four resistors used as level-shifters on the serial Rx/Tx signals. Rx/Tx both work flawlessly once the ESP-01 is properly programmed, so the problem seems to be internal to the ESP-01 itself.

Anyone else having this problem? Any suggestions?

Regards,
Ray L.

I have never used the -01 modules, always the -12. I have the reset and GPOI0 connected to push buttons. To put the board in programming mode I hold the GPIO0 button down and press and release the reset button then release the GPIO0 button. Then I compile and upload the program. Neither is held low while programming. I have had very little trouble with uploading.

groundFungus:
I have never used the -01 modules, always the -12. I have the reset and GPOI0 connected to push buttons. To put the board in programming mode I hold the GPIO0 button down and press and release the reset button then release the GPIO0 button. Then I compile and upload the program. Neither is held low while programming. I have had very little trouble with uploading.

Yeah, as I would have expected, when you release GPIO0 doesn't seem to make any difference.
By ESP-12, I assume you mean NODEMCU modules? I have zero problems with those.
Regards,
Ray L.

The modules that I get are, I think, like -01 modules on a board that breaks out more of the pins. I add a lm1117 3.3 regulator and switches, resistors, etc on perf board. Program them with an FTDI. I got them really cheap so the extra work is worth it.