Hello @Blazej Marciniak,
welcome to this moderated Azure community forum.
The IoT Hub counts the number of 'messages' per day because it offers a service sized on that number.
If you want to know the number of 'messages' per devices, this is not a feature provided by the IoT Hub.
You need to add extra logic listening to any of the messages coming from the IoT Hub.
For example, Stream analytics is capable of counting the number of messages per time slot, per device (check out the tumbling window).
Regarding the message count difference, did you know the IoT Hub does not actually count the number of incoming messages?
What it counts is the number of chunks, the 4KB parts your incoming message is made of.
An explination of how to measure the size, check out this documentation.
If the incoming message has a size of 5KB, it is counted as two chunks.
This could explain the difference.
If the response helped, do "Accept Answer". If it doesn't work, please let us know the progress. All community members with similar issues will benefit by doing so. Your contribution is highly appreciated.