How to create nodes automatically using title, fields, etc from some other nodes?
The Rules module is your friend here.

You may use it to create an entity (here a node) after saving a new content of type A B or C (or any other event). Then you can add actions (set a data value) to fetch field values from A, B and C for your new content of type D. The first action would be of course Create an entity, then set data values.

You may find a great set of tutorials about Rules at Learning the Rules framework series.

Here is a short example : after saving a new Drupal Article, create a new Drupal Basic Page with the Body extracted from the Article and an automatic node-title.

{ "rules_automatic_node_creation_based_on_another_node" : {
    "LABEL" : "Automatic node creation based on another node",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "node_insert--article" : { "bundle" : "article" } },
    "DO" : [
      { "entity_create" : {
          "USING" : {
            "type" : "node",
            "param_type" : "page",
            "param_title" : "Basic page from Article [node:title]",
            "param_author" : [ "node:author" ]
          },
          "PROVIDE" : { "entity_created" : { "entity_created" : "Created entity" } }
        }
      },
      { "data_set" : { "data" : [ "entity-created:body" ], "value" : [ "node:body" ] } }
    ]
  }
}