I want to add 2 separate mesh cubes to each face of an octagon to represent a window and panel beneath the window. I considered adding the meshes to one face of the octagon, selecting the octagon and two new meshes and rotating all 45 degrees on the Z axis and then adding 2 more mesh cubes and rotate again until all 8 sides have been 'populated' with the two mesh cubes. Is there an easier method such as selecting all 8 faces of the octagon and then adding the 2 new meshes which populates every face?
The best for this kind of object is probably to work with an Array modifier:
Create your octagonal cylinder, only keep one face, create an empty at the same location as the origin of the cylinder:
Give your cylinder an Array modifier, Count > 8, enable Object Offset, choose the empty as Object, rotate the empty 45° on Z:
Now whatever you'll do on your object will be replicated x8:
The solution from @moonboots is probably the best to do it like that right from the start. Another possible way when you already have the octagon and two cubes representing the window and panel:
Switch the Transform Pivot Point to 3D Cursor. In your example file this enough, because the origin (and center) of the octagon as well as the cursor are at the world's center. If the octagon is placed somewhere else, select it, then Shift+S > Cursor to Selected.
Select both cubes which you want to place around the octagon and go into top view by pressing Numpad 7.
Duplicate them as "linked duplicates" by using Alt+D (instead of normal duplicates with Shift+D).
Do not yet confirm the duplication but instead press R to start rotating the duplicate and enter 45 to rotate by 45°, then confirm the action with LMB or Return.
Since you did the duplication and rotation in a single action, you can now simply repeat it by pressing Shift+R 6 times until you have the cubes on all 8 sides.
Because you have made linked duplicates of the cubes, you can now change their meshes in Edit Mode and the changes will be applied to all duplicates as well since they share the same object data.
And this also applies for changing the materials on one of the duplicates, the others will get the same materials too.