The Shark Tooth Crown's dapperness value isn't updated until the player mounts or dismounts a boat with the item equipped. If a player equips the crown while on a boat, it won't give sanity; the player must equip the crown first and then jump onto the boat. Similarly, once the crown starts giving sanity, it won't stop giving sanity when equipped until the player dismounts a boat with the crown equipped. It is possible to gain sanity from the crown while on land by equipping the crown on land, jumping onto a boat, unequipping the crown, jumping back to land and equipping the crown again.
Suggested fix: add
if owner.components.driver.driving == true then inst.onmountboat() else inst.ondismountboat() end
after line 1118 in local function shark_teeth_onequip(inst, owner), in function MakeHat(name), in data/DLC0002/scripts/prefabs/hats.lua.
Equip the Shark Tooth Crown while on a boat.