You should remove them from the matrix that you pass to the fitting function. You may want to leave date in since that might have some predictive utility or at least make some features to represent date (e.g. month, day of the week, etc). lubridate and recipes can be good for this. The latter can also make predictors for holidays if that is relevant for your problem.
They should be the same variables. Also, make sure that any preprocessing (such as range normalization) is estimated from the training set and applied to both sets. You should only use the test data for prediction and performance estimation. It should not be used on any way for fitting the model.
You would probably need to impute those. recipes and other packages have some imputation methods. Again, the imputation models should be estimated only from the training set.
For example, if you use 5-nearest neighbors for imputation, then you use the 5 nearest neighbors from the training set to impute any data points in either the training and test set.
Leaving them out is an option but that is risky. It has been well studied that your model can end up having considerable bias by leaving our rows with missing values, especially if those missing data are not at random or if the reason that they are missing is related to the outcome.
I'm not sure that I understand this part. Can you elaborate?