What is the structure of bitcoin block? If I understand correctly block consists of:


block header,
transactions counter,
list of signed transactions.


Each signed transaction consists of transaction itself and appended signature.

Each transaction consists of:


transaction version no,
number of inputs, 
inputs themselves, 
number of outputs, 
outputs themselves and 
locktime.


Each input consists of:


Reference to its outputing transaction
index of output in that transaction
scriptSig


Each output consists of:


output value
scriptPubKey


Is this structure correct?
I'd like to partially answer your question on the tx structure: in general you are right, here some more detail, and yes, you can have several TX_INs and TX_OUTs:

VERSION
TX_IN COUNT
  TX_IN[0] OutPoint hash
  TX_IN[0] OutPoint index
  TX_IN[0] Script Length
  TX_IN[0] Script Sig
  TX_IN[0] Sequence      

TX_OUT COUNT
  TX_OUT[0] Value/Amount in Satoshi
  TX_OUT[0] PK_Script Length
  TX_OUT[0] pk_script     
 LOCK_TIME


So in general the VERSION field at the very beginning and the LOCKTIME at the end is an additional piece. For sure you find further details in the developper section of bitcoin.org, and in Andreas' book "Mastering Bitcoin" (also online available). Avery good overview of the details was also provided here: http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html
I am not experienced enough to answer the part on the blocks, but it is also mentioned in the links.