seems like the user profiles aren't being created 'properly' (or at least with all the data you thought was being added) in AD, MS graph can only select data that exists in the active directory pages
your comment "then on the Azure edit user web page the email field is empty" - shows that the creation of the user was completed successfully but does not contain the mail data you are expecting.
You'll need to modify the creation of the users (and fix the existing users) to include that data before MS graph can pull it since it can only speak to active directory.
You can then grab the user object in AD using the SDK and view the user object in debug mode to know what you need to pull out which looks like this:
var graphClient = new GraphServiceClient(requestAdapter);
var result = await graphClient.Users["{user-id}"].GetAsync();
you can read further on the response here: https://learn.microsoft.com/en-us/graph/api/user-get?view=graph-rest-1.0&tabs=csharp
but it sounds like you've gotten that far
I suggest posting the graphQL code that's creating the user itself if you need help getting it into AD, but until you see the data in AD's edit pages - all you're going to get out of the Graph API response is the AD user ID GUID that's auto generated on user creation (components 2 and 3 mentioned in your question)