You can only install kmods to a firmware that was compiled at the same compilation run as the kmod itself. This is due to kmod package dependency checks based on the kernel version, exact kernel options, all kmod selections etc. (It is not quite so strict, but for most users that is an useful generalisation.)
after trying to change the kernel version selection, you need to do "make clean" before further compilation. And you also should run either "make defconfig" or "make menuconfig" to reflect the kernel version change in your .config. (safest/easiest might be to delete the whole .config and just reconfigure it from scratch)
As you seem to run into 4.4 vs. 4.9 mismatch, you are likely trying to broke one of those rules above.
Possibly you are trying to compile just the kmod separately and to install that into an existing firmware compiled earlier. That will not work. (e.g. installing a self-compiled kmod into an existing buildbot snapshot firmware)
As you need to have the kmod source code in the same build system where you compile the kernel & firmware, everything should happen automatically.
Can you explain what you are trying to accomplish (install which kmod into which firmware), and which changes you have done to the source code?
Thanks for the support
Was finally able to pin point the issue, it was because of my hardware ubiquity ac lr.
its having split partition and firmware need to be written on both the partition to fix or else kernel mismatch occurs.
So to downgrade kernel we need to restore stock firmware and write lede/openwrt on both the partitions.