How can I convert a PHLivePhoto to UIImage?

You need to use PHAsset to fetch the asset, then request image data from PHImageManager.default()

func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
    dismiss(animated: true)
    
    guard let assetIdentifier = results.first?.assetIdentifier  else {
        return
    }
    
    if let phAsset = PHAsset.fetchAssets(withLocalIdentifiers: [assetIdentifier], options: nil).firstObject {
        PHImageManager.default().requestImageDataAndOrientation(for: phAsset, options: nil) { [weak self] data, _, _, _ in
            if let data = data, let image = UIImage(data: data) {
                self?.viewModel.imageBucket.append(image)
            }
        }
    }
}

To get assetIdentifier, you need to create PHPickerConfiguration object using the shared photo library. Creating a configuration without a photo library provides only asset data, and doesn't include asset identifiers.

var configuration = PHPickerConfiguration(photoLibrary: .shared())
// Set the filter type according to the user’s selection. .images is a filter to display images, including Live Photos.
configuration.filter = .images
// Set the mode to avoid transcoding, if possible, if your app supports arbitrary image/video encodings.
configuration.preferredAssetRepresentationMode = .current
// Set the selection limit.
configuration.selectionLimit = 1
    
let picker = PHPickerViewController(configuration: configuration)
picker.delegate = self
present(picker, animated: true)