64-bit kernels for 64-bit CPUs
It is currently possible to install Debian's i386 (32-bit PC) port, including kernel packages, on a 64-bit capable CPU. Such a CPU is capable of running 32-bit user programs correctly. However:
A kernel for a 32-bit port will not include workarounds for some CPU bugs and quirks that only affect 64-bit capable CPUs.
A similar issue can exist with armhf (32-bit Arm), though it is more likely that the armhf kernel won't include all the required drivers for a 64-bit Arm platform and so will be obviously unsuitable.
64-bit installation with 32-bit compatibility
We recommend installing Debian's amd64 port on 64-bit PCs, and the arm64 port on 64-bit Arm-based systems.
In case you have some programs that can only run in 32-bit mode, it is possible to add the 32-bit port as a secondary architecture through dpkg's multiarch support, and then install the required library packages from there. For example:
dpkg --add-architecture i386 apt update apt install libc6:i386
32-bit installation with 64-bit kernel
In case you want to keep an existing 32-bit installation, you can instead add the 64-bit port as a secondary architecture, and then install the kernel package from there. For example:
dpkg --add-architecture amd64 apt update apt install linux-image-amd64