Look at how the cauldron does it.
Essentially, getBoundingBox() refers to what you can get in your outline. Think of stairs. You can point your crosshair above the stair and still get the black outline. The bounding box is FULL_BLOCK_AABB (use that)
To have custom hitboxes (what you collide with), addCollisionBoxToList should be useful. Just override it and put in your custom hitboxes. They use local coordinates, so 0,0,0 is a corner and 1,1,1 is the opposite.