Here is what I have experienced when testing your KML output:
"If I click on the marker sometimes it shows a blank callout" - Never happened to me, although if it does it is worth checking if that Placemark has the necessary information in the markup.
"If I click on the marker in the side bar it shows the bubble correctly." - If you mean bubble showing correctly as the info window anchor placed under the marker, then yes, it shows correctly.
Moreover, the random placement of the info window is caused by the difference between the infowindow anchor properties given on the onclick events of both the marker and their respective sidebar items.
So the correct value of an infowindow anchor (i.e. from where the bubble originates) is set when you click on the sidebar and it appears to me that the value of the anchor when clicking on the marker could be (0,0) or could be placed in the northwestern corner of the markers' recommended bounds.
These are what I can think of.
One thing, that you have asked was maybe there were too many markers.
I think 300 are not many, but that number of markers is good enough to cause confusion to the user. So maybe you could grab these points and wrap them in a text file or a csv file or a database and write a short script to visualize them using google maps clusters.
Or another option would be to upload the whole dataset to google fusion tables.
I hope the above made sense and I could help!