TwoFish implementation with Bouncy Castle
static vs instance

public BCEngine()
{

}

BCEngine(IBlockCipher blockCipher, Encoding encoding)
{
    _blockCipher = blockCipher;
    _encoding = encoding;
}


Default constructors should provide reasonable default values for the two fields initialized by the other constructor but wait... both constructors are useless because all public APIs are static. The only instance members are private methods. I can create an instance of BCEngine but I cannot do anything with it.

BCEngine bcEngine = new BCEngine(new TwofishEngine(), Encoding.UTF8);
bcEngine.SetPadding(new Pkcs7Padding());
return bcEngine.Encrypt(TextPlain, param);


But wait again.. you instantiate it to call the private instance methods. This is very inconsistent and chaotic.
You should either make everything static or everything instance.
It's ok if an instance uses private static methods as helpers but the other way around is kind of weird. At least the default constructor should be private too.
However your implementation uses private fields where two of them are not readonly so you use them to store some state but fortunately they are not static. You should remove these fields and pass the required arguments from method to method. Then you won't need any instances and the methods would be pure &lt;-- LINK.

using and disposables
You should check your code for disposable types. I'm pretty sure there are plenty of them. Encryption usually requires to dispose something.

#region
Regions are rarely necessary and for member grouping virtually never. It's easier to read the code without them.