```python
def pack_entries(entries: list) -> str:
    if not all(isinstance(entry, list) and len(entry) == 2 for entry in entries):
        raise ValueError("Each entry must be a two-element list.")
    
    if not all(isinstance(key, str) and isinstance(value, str) for key, value in entries):
        raise ValueError("All keys and values must be strings.")
    
    if not all(len(key) > 0 for key, _ in entries):
        raise ValueError("Keys cannot be empty.")
    
    if len(set(key for key, _ in entries)) != len(entries):
        raise ValueError("Duplicate keys are not allowed.")
    
    escaped_entries = [
        f"{key.replace('\\', '\\\\').replace('=', '\\=').replace(';', '\\;')}={value.replace('\\', '\\\\').replace('=', '\\=').replace(';', '\\;')}"
        for key, value in entries
    ]
    
    return ';'.join(escaped_entries)
```