```ts
export function orderSections(labels: string[]): string[] {
  if (!Array.isArray(labels) || labels.some(label => typeof label !== 'string')) {
    throw new Error('Input must be an array of strings');
  }

  const validateLabel = (label: string): boolean => {
    return /^[1-9]\d*(\.\d+)*$/.test(label);
  };

  if (labels.length !== new Set(labels).size) {
    throw new Error('Duplicate labels are not allowed');
  }

  if (!labels.every(validateLabel)) {
    throw new Error('Invalid label format');
  }

  const compareLabels = (a: string, b: string): number => {
    const componentsA = a.split('.').map(Number);
    const componentsB = b.split('.').map(Number);

    for (let i = 0; i < Math.min(componentsA.length, componentsB.length); i++) {
      if (componentsA[i] !== componentsB[i]) {
        return componentsA[i] - componentsB[i];
      }
    }

    return componentsA.length - componentsB.length;
  };

  return labels.slice().sort(compareLabels);
}
```