input_size has nothing to do with hidden_size.
hidden_size specifies the dimension of the internal hidden states of the RNN as defined when doing self.lstm = nn.LSTM(input_size, hidden_size, ...). This can be any value independet of input_size
input_size is the number of features for each element in the sequence. In your case, for the encoder input_size=6 and for the decoder input_size=1. Both encoder work that they take the output for the last step as input for the current step. And since the output of your decoder is just 1-dimensional, the input_size must be as well.
In classic machine translation where both input and target words are represented as vectors with the same dimension (e.g.,), then yes, encoder and decoder have the same input_size. In your case, however, encoder and decoder handle different types of inputs and targets: 6-dim for the encoder, 1-dim for the decoder.
This also means that the current input of the decoder has always the shape (1, batch_size, 1), which I was referring to in that comment.