Имеется какое-то мелкое различие. Я тоже делал такую замену. В
проекте (не моем) использовалась глючная и древняя STM32F10x,
STM32L1xx and STM32F3xx USB-FS-Device Library. При переходе на
GD32F103 не захотела работать. Я эту библиотеку в свое время довел до приличного состояния, выгреб кучу багов и добавил поддержку STM32F0. Заменил оригинальные исходные файлы на свои - и все заработало. Что там было - не разбирался, скорее всего какое-то различие в взведении битов в процессе энумерации.
Еще насчет отличий USB Host в STM32F и GD32F, про которую я знаю - у STMки Host определяет подключение девайса по подтяжке на линии D+ всегда (взводится соответствующий бит в регистре), а у Gigadevice - для того чтобы этот бит взвелся надо предварительно подать питание 5В на вывод VBUS (чтобы был зафиксирован передний фронт). Если напряжение на VBUS не меняется, то первое подключение девайса он определит, а последующие - нет.