For it to be the safest and most efficient without down the game, should I code it all on the server then update everyone's clock(Player Gui) individually from the server via a for loop?
Or should the server have a uniform clock value that's constantly changing, and the client updates it's own gui every second by communicating with the server?
There is nothing "unsafe" for a clock timer. There is no point of having the server update the time for all the clients, this would just make the game impress less due to inconsistent changing of the time.
You can simply just have the server send the countdown number to the client and make the client do a for loop from the given number to 0. Then once x seconds has passed, get the server to update the clients again with new information.
(Don't make the server do unnecessary stuff is what I tell myself.)