What do you mean by noise charactersitic? You don't seem to mean SNR as there is no mention of your signal.
I haven't checked through your Matlab program in detail, but I think your best approach would be to convert the hydrophone signal to Pa as soon as it is imported, which should be straightforward. Then you can generate some test signals in Pa with known outputs. Once the program works with a range of test signals (some 'calibration' will be required) you can have some confidence in the final result.
I would have expected the final y axis to be dB/Hz if you are are dealing with random noise or just dB if you are dealing with sinusoids. [If your block length was not 1 second or you used an analysis window (e.g. Hann) each would need to be scaled differently]
What part of this is weird? It looks very much like the example I used in my book to explain spectral analysis. See Fig. 9-2.
It's probably unlikely but just to be sure and in case you want to have better measurements:
You didn't mention band-limiting before sampling. This means that any noise above 12.5kHz will be folded into the spectrum that you end up with.
Also, I have *no* idea what the oscilloscope is going to do with the signal. If it's just an easy way to get an A/D, then OK.
You forgot to window the signal before taking FFT. If the input is white noise, windowing doesn't matter (but there wouldn't be any merit of computing the spectrum either). If the input is colored, expect your spectrum to be jammed by the big fat side lobes of a rectangular window. A easy way to properly estimate the power spectral density is to use Matlab/Octave's pwelch function. It literally takes one line to implement. You might also want to remove the DC, or you can do it later in frequency domain.