There is no problem with your code. The only problem is the way you interpret the output.
You calculate the duration as (Time_Last_Rx - Time_First_Tx)
The first call of the method (ThroughputMonitor) is at t=3sec, and the client has started at t=2sec.
So, the Time_First_Tx = 2.
From the output you get that Rx packets = 0, so Time_Last_Rx = 0 since you haven't received any packet.
Finally, duration = 0 - 2 = -2
So the output is correct!
There are logical problems though. I see that you have installed the server on the eNBs. I do not think that this is correct. You can have uplink/downlink from a remote host.
I would recommend to read the documentation for LTE module one more time to understand the architecture.