The last word of the 25-th mnemonic is a checksum word.
It can only be set to a specific value.
Why do you want to use a user-defined mnemonic?
- As mentioned by @Maugli, if you want to “recover” an account that you lost and for which you copied the mnemonic, you need to use the “recover” function, not the creation function of your wallet.
- If you want to use the same mnemonic as the same account on another blockchain, this is potentially highly insecure and dangerous. This can lead to unknown attacks and should never be done before a careful analysis by a security expert. I would personally never recommend doing that.
- If you want to allow the users to use a mnemonic they can remember more easily, you should remember that users are extremely bad at choosing random words. Therefore, you should treat the mnemonic as a low-entropy password that cannot directly be used as a key (Password strength - Wikipedia) as opposed to a full 32-byte-entropy secret key. This means that you should not use it directly but rather use the usual techniques to derive a fresh new 32-byte secret key from this password. See Best way to store mnemonic on user browser localstorage - #2 by fabrice about some details about it. Notice that you normally need a “salt” in that setting. If no salt is available, you may consider to hardcode the salt for all the users in the software you use, but this significantly reduce security.