OK, did that, but most of the remaining errors are from juicebox noscript area.
These errors are due to your image filenames having spaces in them. It is true that the spaces should be encoded but as the image filenames form part of a URL when uploaded to your web server, it would be wise to use only web-safe characters.
Please see section 2.3 of this document for details.
Characters that are allowed in a URI but do not have a reserved purpose are called unreserved. These include uppercase and lowercase letters, decimal digits, hyphen, period, underscore, and tilde.
Still not sure where you placed #message to get it to show.
On further investigation, my code works fine in a gallery using default settings.
However, when using the settings from your gallery's XML file, the message is, indeed, hidden when not using the 'z-index' value. Using the z-index: 9999; value seems to solve the problem fine.
Here is a test gallery [test gallery removed] using a couple of my own images and the configuration options from your gallery.
The message is not ideally placed but should be overlapping the main image and should be clearly visible at all times (until it fades out).
Wouldn't it be easier to simply delay loading the gallery until after the msg fades?
You could do this if you like but the solution above works fine (at least in my test gallery) and avoids having to introduce an unnecessary delay before the gallery starts to load.
I also wanted the caption between the thumbnails (on top) and the main image (on bottom) but when I do that they only intermittently appeared.
On further investigation, this is due to a bug which appears only when using imageTransitionType="CROSS_FADE" in conjunction with setting the captionPosition to either BELOW_IMAGES or BOTTOM.
I have logged a bug report and the issue should be fixed in the next version of Juicebox-Pro but, until then, a suitable workaround might be to use imageTransitionType="FADE" instead.