I did see this once but the reason was that when the transport was created initially with the first say 50 roles, the check box "also transport the profiles" (or whatever it is called) was deselected. Then when subsequent roles were added to the transport the check box remained checked so out of say 300 roles, only 250 had profiles moved.
Another way I can think of is if the roles were created in a different systems other than dev and had therefore different profile names so this might cause issues as the role doesn't know which profile to use - new or old.
Have you checked the transport to see if the profiles are contained in the table objects (USR12 e.t
.c?)