How do I attenuate a tidal signal in depth time series data
The answer is "No, you cannot attenuate the impact of tide on pressure derived depth data you have already captured without extraneous information".

The reason for this is that the hydrostatic pressure derived depth measurements from the tracked fish ($depth_{fish}(n)$), is only a component of the captured signal.

The illustrative example here is a "freakishly intelligent fish" which manages to stay at one point (with respect to the bottom of the sea) and adjusts its buoyancy with respect to pressure. When the tidal potential piles up the water in a water column above the fish, it ascends. When the water recedes, the fish descends. The pressure derived depth of this fish is constant, when clearly, it has been going up and down.

The hydrostatic pressure signal on the fish body is $P_{recorded}(n) = P_{tidal}(n) \cdot P_{fishDepth}(n)$ where $n$ is some variable that indicates time.

You are FFTing the $P_{recorded}$, aiming at suppressing the $P_{tidal}$, but, multiplication in the time domain is convolution in the frequency domain. Therefore, just by having $P_{recorded}$, you have both $P_{tidal}, P_{fishDepth}$ intertwined. That's not entirely bad news but it certainly is not the best news ever. 

You need to somehow fix one to recover the other and to an extent, whether with freakish frightening accuracy as above or simply casual preference, fish do regulate their buoyancy, but perhaps faster than the speed by which the tidal potential moves over the globe. Therefore, your task might become as easy as applying a low pass filter to attenuate the tidal component which is more likely to exist at the low frequencies. The speed at which the fish are moving versus tidal variation is probably your best "weapon" here. For a bit more background information, you might want to see this link which is not exactly what is asked here but is relevant. (Note: It depends very much on the scale of observation too. Fish might have specific life patterns that are modulated by the time of day. So again, their signal might "hide" in the tide because it just so happens to be driven by the celestial objects that also drive the tide.)

Now, the reason I am asking you about your accuracy specifications is because you might be able to construct some kind of model by which you could isolate the movement of the fish from tide and/or depth.

The simplest way to think about this is to say, "My sensor says 23 meters. Where is the fish? It's at XYZ location. When is the fish? It's at some hh:mm:ss time. Right, what is the depth (from the datum) at the where? It's 50 meters. What is the depth at the where and the when? (Due to tide), it's 52 meters.", Ah! So, the tide has added two meters, therefore the fish is now at 21 meters from the bottom.

It might be possible to work out a probabilistic model too. That answers the question of what is the probability of a depth value, given the prior formed by the sum of bathymetry and tidal data and the data obtained by the sensor.

In any case, you either need extraneous information (bathymetry,tide) or to make an assumption (tidal signal much slower, therefore at very low frequencies, apply a low pass, done).

Finally, please note that bathymetry does play a significant role. For a trivial example, imagine a basin that fills up with water (and fish) during the tide and then preserves water (and fish) even after the tide has receded. For those fish, the readings will always be (for instance) between 4-5 meters when around them, the depth could well be zero. So, your $P_{tidal}$ is actually a sum of bathymetry and tide.

I suspect that this is probably "bad news" (?) but I hope it helps anyway.