The issue turns out to be that the Raspberry PI's RNDIS module generates a pair of random MAC addresses for the network each time it starts up.
The host therefore sees a new device attached to its network each time, hence the issue described in the question.
The solution is to set the MAC addresses on the PI rather than allowing them to be set.
From the information you have given so far it seems that the RasPi has a working WiFi interface wlp2s0. As shown by ip addr it has a dynamic ip address 192.168.1.160/24 that is usually given by a DHCP server on the network. So it must be connected to a remote access point and everything is good. The command iw wlp2s0 link would give us more details about the ...
I ran into a similar issue trying to cross-compile code for the Raspberry PI Zero (armv6) using a newer GCC 8.
Current toolchains are often not built with the --with-arch=armv6 flag. This results in binaries which are not compatible with armv6 and therefore you may get Illegal Instruction error.
I created a github repo where you can download a toolchain ...
Using the compiler toolchain from https://sourceforge.net/projects/raspberry-pi-cross-compilers/
For pizero the cross-compiler is available from the link cross-gcc-9.1.0-pi_0-1.tar.gz
This compiler version is :
Using built-in specs.
There is a tool called katoolin. You can use that software. The script is written in python. Just opne the software from terminal with
sudo python katoolin.py
and you will find options for everything