what are the two bytes makers and flag that is always put at the beginning of a Segwit transaction and why are they always 00, 01?
It simply means "zero inputs, one output" in the old format. And then, old decoders mark it as invalid, if some transaction has zero inputs.
So, the first zero is needed, to simply crash the old decoders, because there is a format they cannot fully understand. Which means, that if the new format is accidentally passed to the old decoders, then it will crash. All old decoders should receive a transaction without any witness, in the old format.
And later, the "01" is just the version of the encoding, which is set to one, and can be incremented in the future, if needed.
In a standard transaction what does the sequence number field represent?
The number of replacement. In a naive implementation, where transaction version was below 0x00000002, you could start from 0x00000000, then make it 0x00000001, and replace some transaction 2^32 times. In transaction versions equal or greater than 0x00000002, this field is used by
BIP-68.
why can a transaction with nLocktime field set to a feature block height still have inputs with sequence =0xFFFFFFFF?
Because when all inputs have sequence equal to 0xffffffff, then locktime is ignored, and can be set to anything.