Processor spec quantum instrument serialization only works with string labels (e.g., 'Q0') and not integer labels (e.g., 0). This is at least in part due to this line in processorspec.py:
nonstd_instruments = {':'.join(k): _serialize_instrument(obj) for k, obj in self.nonstd_instruments.items()}