You are aware that the code that you posted in reply #19 reads the hardware serial port and not the software serial port?
You also need to be more clear in what works and what not; does it print anything or does it only print partially or ...
Be aware that readBytesUntil() possibly will give you data when a timeout occurs and '&' was not received yet and hence the data should be considered invalid. You need to test that.