@danalvarez, Here is an idea to try. The command which is sent to the SX1301 (SX1308) chip to set actual transmit power is the arithmetic subtraction of the power command from the server less the antenna gain. So, as an example, if you want to transmit at 20dBm and the server is commanding at +27dBm then set the antenna gain to be 7dB.
The arithmetic calculation is performed first and then the resulting value is checked against the tx_tul? values in the global_conf.json file. As an example of the transmit power table, here is the tx_lut value for a transmit power of 20dBm
So my suggestion would be to find the power the server is sending (which I think is +28dBm from you error message) and since you want to transmit at +20dBm then set Antenna Gain to 8dB.
One last check before you do. Check there is a tx_lut entry for 20dBm and if not then find the next lowest and adjust Antenna Gain so the resultant matches the value in the tx_lut table. As an example, if there is not entry for 20dBm but the next lowest is 18dBm then the Antenna Gain should be set to 28-18=10dB.
The problem with the packet forwarder code is it want to find an exact match in the tx_lut table whereas it should find the next lowest value and use that.