STM32 hits breakpoint when TIM1 prescaler > 2
The immediate problem that I can see, without going into any calculation is with this line

 TIM_CtrlPWMOutputs(TIM1, ENABLE);


As I have mentioned in the comment, you do not need that! Do you know this particular function according to Std_Peripheral_Library enables MOE(Main Output) in BDTR(Break &amp; Dead time register)? and If it is your intention to use it, you need to configure it accordingly! 

What you are essentially doing is turning the timer on for a special purpose and reconfiguring it for PWM and turning the timer counter on(TIM_Cmd function) again! I think this is causing the conflict. The solution is to simply remove the above line from your code.

I am not sure what your "multipwm_set_frequency" function does! But it is in general very easy to configure the timer for desired PWM frequency. 

Desired PWM frequency = (TIM_CLK/PrescalerValue-1)/(Period-1);

It is in general accurate to calculate PrescalerValue from system_core_clock value. You can then use, pulse value as Period/4 for 25% duty cycle(as you have done), Period/2 for 50% duty cycle and so on...