I came to know that we cannot create a hierarchy of hubs. My question is why so?
That depends on the book's definition of "hierarchy". In CSMA/CD, no repeater has more "weight" than any other, so there's no hierarchy in terms of priority.
However, you can (and should) arrange repeater hubs in a tree (multi-star) topology, so there's a center hub that you might call root.
The other alternative, chaining the hubs, quickly increases your network diameter beyond the 5-4-3 rule for 10 Mbit/s Ethernet. Of course, you may only cascade two (class II) repeaters for 100 Mbit/s Ethernet, so there's really not much choice.
Some repeater hubs may be more important logically, e.g. the one(s) connecting servers or other hubs.
Of course, repeaters, repeater hubs, half duplex, and CSMA/CD are long since obsolete for serious networking. Gigabit or faster links don't even support all that any more. (Gigabit Ethernet did define a single repeater in a network, but that has been deprecated and practically no hardware exists for that. 10G+ Ethernet never supported repeaters and half duplex at all.)
Are uplink ports simplex?
No. First of all, repeaters have no uplink or downlink ports, all ports are equal. Also, communication across a repeater is always half-duplex: one node may send and all others listen, but the currently sending node varies.
The point is that a repeater (hub) doesn't control traffic. When the network is idle, the first attempting sender seizes the network and transmits. Since all sender bits are simply copied to all other ports, no other node is allowed to send at the same time. After all, what would a listener on the network hear? It can't receive multiple signals at the same time.
A switch in contrast buffers and queues frames and specifically forwards them to the correct destination. That enables multiple senders in the network (one on each switch port) as they don't collide with each other.
Simplex means generally one-way, like a radio or TV broadcast network. That wouldn't work for any network on topic here.
Why is it not possible for the hubs to read from the uplink port and broadcast the frame to the remaining ports?
That is pretty much all they can do, the "uplink" port being the current sender's port.
Edit after comments
"Uplink" also used to be the term for a hub or switch port intended to connect to another hub or switch. By convention, those concentrators use a MDI-X port pinout with an internal signal crossover that allows other devices - with a MDI pinout - to connect using a "straight", 1:1 cable.
However, connecting like devices - MDI-X to MDI-X, or MDI to MDI requires an external signal crossover: a crossover cable or adapter. That led some manufacturers to include a switchable "uplink" port in their hubs or switches, or a dual port that was present in either configuration. Apart from the pinout, such a port has no other function than all the other ports.
 "Used to be" because starting in 1998, pretty much all network devices today feature Auto MDI-X, removing the need for crossover cables. Auto MDI-X uses an algorithm to automatically determine the required port pinout for linking.
"Uplink" can have different meanings, depending on context.
On the physical layer (L1), "uplink" on hub/switch can refer to an MDI port, intended as a connection to a more central hub or switch, as outlined above. Alternatively, the uplink is a higher-speed port used to (or intended to) connect towards the core network.
On the data link layer (L2), "uplink" can refer to a non-blocked port in a spanning tree that points toward the root bridge (the root port).
On the network layer (L3), "uplink" usually refers to port pointing towards the core network or the Internet (most often that's the same port).