The kernel version is tied to the flash software release. If the kernel source is from the version flashed, then it should work, but if the kernel version differs from that originally flashed, then this will probably fail to some degree.
Many people who have issues with a compile either fail to set the starting configuration to match what was running, or else fail to set “CONFIG_LOCALVERSION” to “-tegra”. This latter would cause finding modules to fail. To see if this is the case run the command “uname -r”. Probably this should respond (for a correct build) to the base kernel version and “-tegra” appended to the version number. The side effect is to say the kernel is looking for its modules at:
/lib/modules/$(uname -r)/kernel
If your modules are there, then they can be used. If the modules are not there, then it won’t matter if you built the module or not…the module would not have any way to be found.
How did you configure the kernel?
I couldn’t tell you what the proper config is for the RFCOMM itself, but to see if your kernel has this, boot to that kernel, and run command:
zcat /proc/config.gz | grep 'CONFIG_BT_RFCOMM_TTY'
Incidentally, if you build this as a module (I don’t know if it can be built as a module, but most features can be), then you wouldn’t replace your existing kernel, you’d just configure kernel source to match, and then build the module, followed by copy of the module file. A lot of people get stuck thinking they need to flash something to install a kernel, but in most cases there is no such requirement (an example of flashing being a mandatory install method is if the security fuses were burned).