My guess is that you are going to have to look into @Overriding some of the methods in BlockFluid, I haven't done much with liquids, other than think about adding them, but a quick look over the code shows that:
public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) handles you particles, you will find the part that handles Material.water, change that for your block
There is also a getBlockColor(), and a colorMultiplier(), looking at these might help with color based on Biomes...
But again these are guesses and I haven't actually implemented anything with these yet.