The classic formula for converting power between dBm and mW is
$$ P[dBm]=10log_{10} \frac{P[mW]} {1mW} $$
To convert in the other direction, you use formula:
$$ P[mW]=10^{\frac{P[dBm]}{10}}$$
Few handy things to know is that for every 3 dB, power increases around two times and for every 10 dB, power increases 10 time, so for example 10 mW is 10 dBm, 100 mW is 20 dBm, 1W is 30 dBm = 1 dBW and so on.
Also keep in mind that you can add togetherunits in dB and dBm, so if you have output power of say 0 dBm and connect that to a 10 dB amplifier, you'd get 0 dBm + 10 dB = 10 dBm output power.
Yes, you can have multiple units receive the same broadcast (or multicast) message, if they are each configured to use the same receive address that the transmitters is sending to. (And in range of course).
Remember that each can have up to 6 configured receive addresses, so one of the ways to use the device is to configure one receive address which is unique to a given device, and one receive address which is shared with other devices (eg: all receivers, so some subset of them). The transmitter can send to a single receiver by using its unique address, or to all of the receivers in the group by using the shared address. ("Multicast" may be a somewhat better description in that it goes to multiple receivers in this scenario, but it need not go to all receivers - you can control the subset of receivers using a given shared address).
Of course, if you are sending a multicast message, it must not use ACK - because multiple receivers would try to send their ACK packets at about the same time, which would collide. (Also: since the hardware defined packet structure does not have a "source" address, the way that Enhanced ShockBurst ACK works is that the receiver sends the ACK packet to its own address, and the transmitter must be configured to receive at the address it's sending to. Thus in multicast, a given receiver's address - to which it will send an ACK - is also the shared receive address for the other receivers). So ACK must be off for multicast (as your code says).
There is not quite enough information to answer why your particular setup causes only one receiver to accept the packet. Suppose you have one transmitter T, and two receivers R1 and R2 (both using the same address). R1 is the one which "always wins". Is this the situation:
(R2 not operating): R1 reliably receives from T
(R1 not operating): R2 reliably receives from T
(both R1, R2 operating): only R1 receives from T, R2 does not
That is, adding a R1 to the second situation causes R2 to stop receiving from T. Can you verify this by starting the T to R2 test in a loop and then after a while also powering up R1, at which point R2 stops receiving; then power down R1 and see if R2 starts receiving again?
If so I'd suspect that some kind of ACK problem is involved, or there is some problem with R1 and R2 being too close with some kind of RF or antenna intererence, or they are on the same power supply and there is some interference between them through the power line.
The nRF24 family is a bit sensitive about power; sometimes you need to put a filter cap across the power input to the module; eg: a 10 uF electrolitic (observing + and -). I've had what I thought were software or config problems clear right up when I improved the nRF24L01+'s power supply.
Best Answer
Look into how much the module is consuming now. If it is consuming a fraction of the whole system power, it may not be viable.
Check if you can disable TX of the receiver to save some power. Run the MCU using watchdog so that it wakes up, does the job and sleeps again.
To sync communication, send a request packet from the receiver to the transmitter for every update. In that way, you will not be transmitting when receiver is offline and expecting trial and hit packets; receiver controls the flow. By changing the frequency of requests, you control the frequency of updates and power consumption.
Thus, in the most optimal way, use watchdog timer to wake up MCU. After wakeup, enable the receiving module (both RX and TX if they can be controlled separately). Send a request packet. Wait for the packet with a timeout. If a packet is received before timeout, use it for the update and sleep. If timeout occurs, sleep.