That's actually a pretty genius concept. My two cents: Word-length shouldn't affect balance, if each player gets a set of the same length words. The balance issue will be to make sure that the set of words each player gets are roughly the same in difficulty. Think the funnest way to do that, that also just avoids the whole issue of estimating word difficulty, is to let each player type in their own words. So each player gets the prompt, pick words of lengths l_1, l_2,...,l_m and then place them on the board. Then the strategy is picking hard-ass words for the other player to guess and words which allow for clever doubling up like maybe allowing words to overlap, or modifying the 'you sunk my battleship' rule so that you could lay two words next to eachother to camouflage it as a different length word i.e. make the other player actually have to guess the word instead of automatically sinking after it is fully revealed.
I think the more difficult issue is how to make guessing fun. Battle ship will have n * n guessable binary states. However words will be l^26 possible states per l-length word, so you can't guess 'is this space part of a word' and 'what letter it is' at the same time or you would be playing for forever.
Maybe something like players have to spend an extra turn to reveal what letter the space is after they have identified it as a word-space, then limit them to guessing one word per turn as the 'you sunk my battleship' step.