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$