Maybe the bootloader is not activated. AN2606 (st.com/resource/en/application_note/cd00167594.pdf) describes several ways of activating the bootloader. Could it be possible in your hardware to try to activate the bootloader using the BOOT(x) pin(s)?
EDIT: AN2606 says: "The STM32F09xxx bootloader is activated by applying pattern6 (described in Table 2: Bootloader activation patterns). The following table shows the hardware resources used by this bootloader."
Pattern6
Boot0(pin) = 1, nBoot1(bit) = 1 and nBoot0_SW(bit) = 1
nBoot0(bit) = 0, nBoot1(bit) = 1 and nBoot0_SW(bit) = 0
Boot0(pin) = 0, nBoot0_SW (bit) = 1 and main flash empty
The STM32F051 is activated using pattern2:
Boot0(pin) = 1 and nBoot1(bit) = 1