stm32f103 I2C Bare Metal Programming Question
I'm seeing a couple of configuration problems.

You configure PB6/PB7 for open drain, but then you remap the I2C1 pins to PB8/PB9 and those have not been configured.

For fpclk1(which is your master clock/2) to be 25Mhz means that your running the master clock at 50Mhz, which is an oddball frequency.  Are you running with an external or internal high speed clock?

Next, how did you calculate that TRISE?  That value(26) seems sort of high.  I would normally expect to see a range from 9 to 12, with 9 being set about 90% of the time(for SM).  And the reason why 9 is common is because with a Tpclk1 of 125ns, the calculation is (1000/125) + 1 = 8 + 1 = 9.

Just one mis-configuration can cause a non-start, but it looks like you have more than one.

Side note:  Unless your committed to dorking around in the guts of the chip, I would just find a good HAL library.  NOT the one from ST!  My personal favorite is the ChibiOS HAL which has an Apache license.