firstly:
(note that this isn't your immediate problem, but will be important later)
you're not using SendFlags properly. The field provides a set of flags that the engine uses to track what parts of the entity need to be resent.
If you want to resend everything, then you can just set it to -1 (integer maths trick which is the set of all bits). Usually you'll just |= into it though. any adds or subtracts or multiplies or divides or even bit-clears should be considered a bug. copying the value from another entity is also a wtf.
the engine will periodically clear the field back to 0 - so anything that cares about the actual value is thus bugged (the bits get stored into a per-client state tracker, and are passed back to your SendEntity function so that you know its safe to send smaller updates - the first call will have all bits set or so).
secondly:
'Illegible server message' means something got sent that the client didn't understand for one reason or another - the reads in the client didn't match the writes in the server.
FTE has an sv_csqcdebug cvar - this will cause FTE to prefix entity updates and cgame packets with a size value. If the reads do not match the writes then the client will rewind/skip back to the correct place and print a warning whenever it does so. This can be used to tell you where in your code those reads don't match the writes.
So set that cvar to let FTE detect what went wrong.
However it looks like you're debugging in DP, so you're screwed as there's no DP equivalent. My advice to you is to debug it in FTE instead (if only briefly).