```python
def check_manifest(line: dict) -> dict:
    if not line:
        raise ValueError("Manifest is empty")
    
    for key in line:
        if key not in ['sku', 'count', 'note']:
            raise ValueError(f"Invalid key: {key}")
    
    sku = line.get('sku', '').strip().upper()
    if not sku or not isinstance(sku, str):
        raise ValueError("Invalid sku: must be a non-empty string")
    
    count = line.get('count', 0)
    if not isinstance(count, int) or count <= 0:
        raise ValueError("Invalid count: must be a positive whole number")
    
    note = line.get('note', '')
    if not isinstance(note, str):
        raise ValueError("Invalid note: must be a string")
    
    return {key: value for key, value in line.items()}
```