Boats cannot be placed under water most of the time unless you look up while using the boat.
Go underwater and try to place a boat by right clicking the ground around you
Based on 1.12.2 decompiled using MCP 9.40
The root cause is that the method net.minecraft.item.ItemBoat.onItemRightClick(World, EntityPlayer, EnumHand) tries to place the boat in the water block right in front of you, which fails because you would be intersecting with the boat.
It might be better if (in general) ray tracing under water would ignore liquids, or at least water.