You can add multiple versions of fish by adding a mesh in the skeleton editor inside Wadtool. The fish uses the meshes from the FISH_EMITTER object. Mesh 0 should be a common nullmesh.
You can set the number of fish by using a node in Tomb Editor to change the Hit Points of the FISH_EMITTER.
OCBs
You must change the OCB as it cannot be 0.
Positive OCB + mesh number: friendly fish
Negative OCB + mesh number: deadly fish
AI
You can make the fish patrol between AI_FOLLOW objects:
A path can have any number of AI_FOLLOW objects, but it needs at least 3. The first AI_FOLLOW object should be on the start square of the FISH_EMITTER, and it should have the first OCB value. The fish will swim from there to the next two AI_FOLLOW objects in the path. The last AI_FOLLOW object in the path should have the last OCB value. Then, the fish will swim back to the first valid AI_FOLLOW object after the start square (the one with the first OCB value).
To create a different path for another school of fish, you need to skip an OCB number between the last OCB of the previous path and the first OCB of the new path. This way, the engine can distinguish which numbers belong to which swarm. The first AI_FOLLOW (the one on the same square as the FISH_EMITER) is not part of the patrolling, but it also requires an OCB. If you omit an AI_FOLLOW object on the fish emitter square, the fish will follow a random target within a solid spheroid inside the water room.
In the above example: Between the last ocb (4) and start of the new path (OCB 6) has to be a gap (no object with OCB 5) so that the engine knows there are 2 different paths.
If a CORPSE object is in the water, then the fish will be distracted and feast on that, rather than the player.