In addition to what @koragg said, the issue is that when you first call onReceivedData you are adding the render function to the onClientRender event. You'll need to grab a hold of that render function (your render function atm is being defined globally), and execute removeEventHandler if the render function already exists.
You need to do these three things:
Before function drawReceivedData(...) write this line: local render;
This will set the scope of the render variable
Right after the function drawReceivedData(...) line, check if render exists (if not nil), and it does, run this: removeEventHandler("onClientRender", root, render)
Steps to improve general code:
Lift the state: make the render function a regular function (not one defined inside another function)
Make it refer to a safeStatus table
onReceivedData check if safeStatus is defined. If it isn't (is nil), define it, and add the event. It is already defined, redefine it (or just update fields) so the render function will print the updated fields.