I can't beat the fish thing
Solution 1:
You can't attack the boss directly, but if you attack the yellow crates when he breathes in, you will cause him to swallow bones and take damage that way.
Once you hit him about 4 times this way, the perspective changes and you get a first-person view of the lungfish chasing you. Basically you want to avoid or attack the enemies and keep moving while you stay away from the outer wall that separates you from the water.
Double-jump across the platforms and punch down some clear walls, then jump up some large steps and run up some small ones. Swing on some bars next to keep climbing, then use levitate to bounce to the next ledge. Run up the stairs and keep following the path to begin the next part of the battle.
The tactics are the same in this part, but sometimes the boss blows out air instead of inhaling it. So ignore the yellow boxes when this happens, and only break them when he inhales.
After about 3 more hits it's time for more running. Your first obstacle is some boxes to jump over and a beam to slide down, then you want to do a double-jump to some netting up ahead and bounce with levitation to a higher ledge.
Ignore the stairs and double-jump up the platforms instead, then smash the doors in your way and grind down the beam [or just drop to the ground] as the next part of the battle begins.
For this part of the battle you want to keep your distance and try not to step on any sucker fish. Otherwise you should get behind one of the clams and close enough to touch it, this way the boss should get stuck on the clam when he tries to attack you.
Once this happens you can get in close and score 3 quick punches before he breaks free. Once you connect with about 9 punches, the battle is finally over.
Source: Psychonauts Walkthrough - IGN FAQ's
Solution 2:
With a bit more trying I found out that you have to get the antenna caught in one of the clams by getting him to swing it near them, you can then hit him as normal.