A simple encryption scheme 2.0
Too fancy, too hard to read. The whole code can be compressed into something like
 BCrypt.Net.BCrypt.HashPassword(salt+password).ToArray()
Take a look at how to use this function here: https://jasonwatmore.com/post/2020/07/16/aspnet-core-3-hash-and-verify-passwords-with-bcrypt
Most importantly: there's no point in using mighty hashing like SHA3 and BCrypt only to use some made-up XOR encryption scheme. Use a standard encryption algorithm from a reputable library. If you don't trust any library or algorithm, then encrypt 2 times with two different algorithms, different keys and maybe using libraries from different vendors.
Beyond that, here are other issues I have with this code:

Is .Skip(7) supposed to somehow remove the salt? You can't &quot;remove&quot; the salt, the string you get from that function is not your input anymore, it's a completely different string (aka hash).

All these IEnumerable aren't efficient. Just use byte[].

there's an attempt to be efficient with bitshifts. Just use % and leave it to the compiler. Given the rest of the code doesn't look like the most efficient implementation (IEnumerable, yield...) it makes no sense to sacrifice readability

to that end - add other comments. It's not clear what GetBytes is supposed to achieve, given its generic name and lack of comments.

if the password is null, empty, or string below a certain length - throw an exception. There's no point in encrypting something with an empty password

name things properly. byte offset is not an offset (that would have been i % key.Length), it's a byte from the key

use constants instead of magic values sprinkled across the code.

get familiarized with common encryption libraries and try to follow their patterns, don't reinvent wheels that need no reinventing