Instead of a vague reply that is only for sarcasm, you should've provided a way for debugging or to see where is the problem... So Thanks for nothing.
On my side, I returned the original "untouched" sixlowpan module. Just added "std::cout" lines to output when a fragment is out and when it is in, in addition to their Datagram_Tag and source/destination addresses. I did this for the sake of investigations... The results? Same as what happened in my experiment: More fragmented datagrams than the original UDP Datagrams!
So, I decided to go further: I used the UDP-Echo application (with small modifications: I removed the echo from the server, and set the filling to have a randomly generated number to make each datagram unique) to send custom-filled UDP datagrams. Then I added few lines to sixlowpan and udp modules to output the contents of the datagrams (for sixlowpan I copied the first fragment, removed all its headers/dispatches, then read the contents).
What I found know is the following:-
1) UDP module sends the exact number of datagrams, each one is unique... So no problems on UDP.
2) Sixlowpan start with sending datagrams as what it supposed to do, but then it goes to transmit one datagram many, many times, with different Datagram_Tag, then goes to the next datagram and continue the same pattern (resend with new Datagram_Tag(s)).
On the light of what I did, I believe that there is something wrong at sixlowpan module.... I'm going to investigate more, but if anyone could provide me with more help, I would highly appreciate it