You should be able to use the 'getStateForPlacement' method found in Block.java to set the life value.
This is the code I used for setting the direction of a block
public BlockState getStateForPlacement(BlockItemUseContext context) {
return this.getDefaultState().with(FACING, context.getPlacementHorizontalFacing().getOpposite());
}
For your second problem maybe try using the 'interactWith' method which is found in the AbstractFurnaceBlock.java
This is the code I have for a TileEntity I created
protected void interactWith(World worldIn, BlockPos pos, PlayerEntity player) {
TileEntity tileentity = worldIn.getTileEntity(pos);
if (tileentity instanceof BrewerTileEntity) {
player.openContainer((INamedContainerProvider)tileentity);
player.addStat(Stats.INTERACT_WITH_FURNACE);
}
}