```python
def mend_shards(copies: list) -> list:
    if not copies:
        raise ValueError("Input list of copies cannot be empty")
    
    if len(set(len(copy) for copy in copies)) != 1:
        raise ValueError("All copies must have the same length")
    
    mended = []
    for position in range(len(copies[0])):
        counts = {}
        for copy in copies:
            value = copy[position]
            if not (value is None or isinstance(value, int) and value >= 0):
                raise ValueError("Each slot must be a non-negative integer or null")
            counts[value] = counts.get(value, 0) + 1
        
        best_value = None
        max_count = -1
        for value in copies[0]:
            if value is not None:
                count = counts.get(value, 0)
                if count > max_count or (count == max_count and copies.index(value) < position):
                    best_value = value
                    max_count = count
        
        mended.append(best_value if best_value is not None else -1)
    
    return mended
```