Beauutiful!! Glad you did it!
I don’t think you quite understand bloom shaders
What happens is the shader loops through the horizontal axis 5 times and the vertical axis 5 times and adds those samples together. This, indeed, is a blur. However the final bit (gl_FragColor = (final / 25) + color) adds the blur to the color of the pixel it is on, making any lighter pixels “bleed” into the current fragment. Maybe you are not setting the sampler2d correctly? I know it’s elementary but try just setting gl_FragColor to color. If the scene looks completely normal the color is being calculated correctly (I know you probably already did this).
Anyways, you should end up with something like this (this is a test scene for my playing around with shaders):
as I said this is a messy implementation and you can certainly improve on it but it will give you a taste for what it’ll look like.