You can't use partial writes. The size of your UDP packet depends on the MTU supported by everyone along the path. (BTW, that's what heartbeat was created.)
I suggest you get your program working "properly" for your definition of what
properly means, without DTLS. Then add DTLS.
And have you read the paper I pointed you to?
/r$
