RPC’s are called when event happens, not after. In your case, if people can connect after the event, it may be more suitable to replicate this information via variables – those will be replicated when actor becomes relevant to client (even if these clients connect later).
For instance, you may have some sort of BuildManager actor that is replicated from server to all clients (mark it Always Relevant), with replicated variable that stores TArray of structures with information needed to perform the build on the client. OnRep function that belongs to this actor can then iterate the variable and locally spawn whatever was already spawned.
If this variable is updated directly on the server, and also on the client when RPC executed, then OnRep will not fire off. (OnRep only fires if the variable’s value actually changed).