You have to understand not every USB boot-able/installable Linux image out there is going to work in a PXE environment.
An non PXE image usually boots and retrieve the required components from the booting device (HDD, USB, etc).
A PXE ready image will initially boot from the net "and" the init script is ready for mounting an NFS, HTTP, SMB, etc system in order to get the required components from there.
Non pxe install images not only do not have an init script ready to retrieve components from the net but also many times use kernels/busybox builds that do not even have network support or do not have the kernel modules for some of the protocols that make life easier when PXE installing like HTTP or SMB.
Remember TFTP is just used only on a few initial transfers (pxelinux/vesamenu/kernel/initrd), the big part of the install is going to be transferred later by HTTP or using an NFS or SMB share mount.
Then if you want to PXE boot an USB Linux install image you have to analyze the distro initrd and see if the included init script supports PXE, next you have to see if the
kernel/busybox include the reqd components for net booting. It is not a trivial job.
If you want to boot an image that "is not an install" but it is a live distro you have to add to the init script the code for net mounting the squashfs file.
If you want to boot a an image that is neither a install nor a live distro things are even more complicated.