Programmatically printing from field_collection array
You can use Entity View Modes to solve the first part.

Install/enable the module, then configure some new view modes for field collections.

Then, goto the Field Collections config, and do the Manage Display for your collections.  Configure the new view mode(s).

Now, goto the Manage Display for your nodes.  Click the settings gear for the field collection field, and choose your view mode.

That should set you up for your second part, which is rendering out a field twice.  There are several ways to do this, like this and this.  You would just need to make sure your duplicated field uses your other view mode.