Auszug aus deiner Source:
1  |   //Speed Register 
  | 
2  |   //00 - 2MHz
  | 
3  |   //01 - 25MHz
  | 
4  |   //10 - 50MHz
  | 
5  |   //11 - 100MHz on 30pF/80MHz on15pF
  | 
6  |   GPIOB->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR6_0;    //PortB Pin6
  | 
7  |   GPIOB->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR7_0;    //PortB Pin7
  | 
Du setzt nirgendwo die Geschwindigkeit von GPIOA8, damit hat er eine 
Geschwindigkeit vom 400kHz
Deine Geschwindigkeitsangaben sind komplett falsch!
Wenn Du RCC_CFGR_MCO_HSI setzt, wieso zeigt dein Debugger immer noch 
0x00000005 an?
Wieso kommt am MCO was raus, wenn RCC->CFGR auf 0x00000005 gesetzt ist?
1  |     //Schaltet PortB Pin6 auf Low
  | 
2  |     GPIOB->BSRRL = (1<<6);
  | 
3  |     
  | 
4  |     //Schaltet PortB Pin6 auf High
  | 
5  |     GPIOB->BSRRH = (1<<6);
  | 
Die Kommentare stimmen nicht mit deinem Code überein.
Das funktioniert genau andersrum.
Ich empfehle ganz dringen nochmal das Reference manual und den Product 
datasheet zu lesen.