A to Z, A# to Z# and A$ to Z$ are different variables and they occupy different memory space inside the PLC. Yes they can appear in the same program and within the same custom function without any conflict.
Note that TBASIC does not automatically convert string type to numeric type (integer and floating points are both numeric). But there are functions that allow you to convert from one variable type to another variable type. E.g. STR$(n), HEX$(n), VAL(n) HEXVAL(n). A# to Z# can be assigned to A to Z with some loss of precision.
E.g. A = Z#*1.2345/A# ' the floating point computation result is converted to integer and assigned to A.